C语言复习总结:
这个文件是在学习完C语言的基本用法后,回顾C语言的一些语法和易错,不易理解的一下内容,可能会存在内容不连续的情况.
本文内容,有参考自 M了个J的博客 根据自身的学习进行了部分的摘抄和扩写
原文请参考:http://www.cnblogs.com/mjios/tag/objective-c/default.html?page=1
标识符命名规则:
1、只能由26个英文字母的大小写、10个阿拉伯数字0~9、下划线_组成
2、严格区分大小写,同一段英文字母的大写和小写是两个不同的标识符
3、不能以数字开头。
标识符命名规范:
1、名称要有意义,不懂英文的可以用拼音,但是一定要有意义
2、如果标识符中含有多个单词,可以使用驼峰标识(除第一个单词,后面每个单词的首字母都是大写)
C语言中得数据类型:
const关键字:
默认情况下,变量的值是可以不断改变的。不过,有时候我们会希望变量的值只在定义的时候初始化一次,以后都不能再改变,这个时候我们就可以使用const关键字来修饰变量。
int main()
2 {
3 const int i = 6;
4
5 i = 7;// 报错,不允许再次修改i的值
6
7 return 0;
8 }
进制:
二进制:
1、由0、1两个基本数字组成;运算规则是“逢二进一”
2、为了跟其他进制区分开来,书写二进制数的时候,需要以0b或者0B开头
八进制
由0~7八个基本数字组成;运算规则是“逢八进一”。
为了区分开来,在书写八进制数的时候,需要在前面加个0
十六进制:
由0~9和A~F组成,A~F分别表示10~15;运算规则是“逢十六进一”
为了区分开来,在书写十六进制数的时候,需要在前面加个0x或者0X
各种类型数据输出的格式:
补:格式符%p是专门用来输出地址的 printf("变量a的地址是:%p", &a);
不同数据类型所占用的存储空间
变量的存储:
内存寻址是从大到小的,而变量的值在内存上是从小到大的
int main()
2 {
3 char a = 'A';
4
5 int b = 10;
6
7 return 0;
8 }
a先被定义 就存储在地址较高的地方,而 对于变量b其低位0000 1010存储在地址较低处
不同类型数据的取值范围:
不同数据类型溢出情况下得表现
int类型:
int c = 1024 * 1024 * 1024 * 4;
6
7 printf("%d\n", c);
下图为输出结果:
原因:c = 1024 * 1024 * 1024 * 4 表达的数据超过了int所能表达的范围 按照二进制计算应该是0001 + 32个零 但是int只占用4个字节32位 因此 输出结果错误
char型
char c = 'ABCD';
6
7 printf("%c\n", c);
下图为输出结果:
原因:char在内存中只占用1个字节 因此只能存储最后面的字符
signed和unsigned
1、signed int等价于signed,unsigned int等价于unsigned
2、signed和unsigned的区别就是它们的最高位是否要当做符号位
类型自动提升不会影响变量的原来的数据类型
计算机中的运算有个原则:
相同数据类型的值才能进行运算,而且运算结果依然是同一种数据类型
float a = 10 + 3.45f;// int 提升为 float
4
5 int b = 'A' + 32; // char 提升为 int
6
7 double c = 10.3f + 5.7; // float 提升为 double
虽然 进行运算时会自动提升 变量的类型 但这个过程只发生在 运算过程中,运算结束,返回原来的类型