一、标识符的命名
1> 命名规则(一定要遵守)
l 只能由26个英文字母的大小写、10个阿拉伯数字0~9、下划线_组成
l 严格区分大小写,比如test和Test是2个不同的标识符
l 不能以数字开头
l 不可以使用关键字作为标识符
2> 命名规范(最好遵守)
l 尽量起个有意义的名称,比如一个完整的英文单词,别人一看这个名称就能才能这个标识符的作用。如果不懂英文,你也可以用拼音,尽量不要起像abcde、sfsdfsdf等这类看起来没有意义的名称
l 如果标识符中含有多个单词,可以使用驼峰标识(除开第一个单词,后面每个单词的首字母都是大写):firstName、myFirstName,或者使用下划线_来连接:first_name、my_first_name
二、C语言中的数据类型
2. 交换整型变量a、b的值。比如a=10、b=11;交换之后a的值是11,b的值是10。用两种方式实现:
使用第三方变量
int temp;
temp = a;
a = b;
b = temp;
不使用第三方变量
a = b - a;
b = b - a;
a = b + a;
3. 内存以字节为单位
1> 不同类型占用的字节是不一样的,数据越大,所需的字节数就越多
2> 所占用字节数跟类型有关,也跟编译器环境有关
1> 可以连续使用2个long,也就是long long。一般来说,longlong的范围是不小于long的,比如在32bit编译器环境下,long long占用8个字节,long占用4个字节。不过在64bit编译器环境下,long long跟long是一样的,都占用8个字节。
2> 还有一点要明确的是:short int等价于short,long int等价于long,long longint等价于long long
4. signed和unsigned
1> 首先要明确的:signed int等价于signed,unsigned int等价于unsigned
2> signed和unsigned的区别就是它们的最高位是否要当做符号位,并不会像short和long那样改变数据的长度,即所占的字节数。
4.c语言中的真假
l 在C语言中,条件成立称为“真”,条件不成立称为“假”,因此,判断条件是否成立,就是判断条件的“真假”。
l 怎么判断真假呢?C语言规定,任何数值都有真假性,任何非0值都为“真”,只有0才为“假”。也就是说,108、-18、4.5、-10.5等都是“真”,0则是“假”。
5 关系运算符,使用注意
l 关系运算符中==、!=的优先级相等,<、<=、>、>=的优先级相等,且前者的优先级低于后者:2==3>1
l 关系运算符的结合方向为“从左往右”: 4>3>2 ,所以不能使用 0<a<100,只能换成a>0 && a<100
l 关系运算符的优先级小于算术运算符:3+4>8-2
6. main函数
l 返回值:0,正常退出;1,异常退出
四、 位运算
1. & 按位与
1> 功能
只有对应的两个二进位均为1时,结果位才为1,否则为0。
2> 举例:比如9&5,其实就是1001&101=1,因此9&5=1
3> 规律
l 二进制中,与1相&就保持原位,与0相&就为0
2. | 按位或
1> 功能
只要对应的二个二进位有一个为1时,结果位就为1,否则为0。
2> 举例:比如9|5,其实就是1001|101=1101,因此9|5=13
3. ^ 按位异或
1> 功能
当对应的二进位相异(不相同)时,结果为1,否则为0。
2> 举例: 比如9^5,其实就是1001^101=1100,因此9^5=12
3> 规律
l 相同整数相^的结果是0。比如5^5=0
l 多个整数相^的结果跟顺序无关。比如5^6^7=5^7^6
l 因此得出结论:a^b^a = b
4. ~ 取反
对整数a的各二进位进行取反,符号位也取反(0变1,1变0)
5. << 左移
l 把整数a的各二进位全部左移n位,高位丢弃,低位补0。左移n位其实就是乘以2的n次方
l 由于左移是丢弃最高位,0补最低位,所以符号位也会被丢弃,左移出来的结果值可能会改变正负性
6. >> 右移
l 把整数a的各二进位全部右移n位,保持符号位不变。右移n位其实就是除以2的n次方
l 为正数时,符号位为0,最高位补0
l 为负数时,符号位为1,最高位是补0或是补1取决于编译系统的规定
运算符的优先级(从高到低)
优先级 |
描述 |
运算符 |
1 |
括号 |
()、[] |
2 |
正负号 |
+、- |
3 |
自增自减,非 |
++、--、! |
4 |
乘除,取余 |
*、/、% |
5 |
加减 |
+、- |
6 |
移位运算 |
<<、>>、>>> |
7 |
大小关系 |
>、>=、<、<= |
8 |
相等关系 |
==、!= |
9 |
按位与 |
& |
10 |
按位异或 |
^ |
11 |
按位或 |
| |
12 |
逻辑与 |
&& |
13 |
逻辑或 |
|| |
14 |
条件运算 |
?: |
15 |
赋值运算 |
=、+=、-=、*=、/=、%= |
16 |
位赋值运算 |
&=、|=、<<=、>>=、>>>= |
如果在程序中,要改变运算顺序,可以使用()。