标识符
起变量名、宏名、数组名、结构体名、重定义名、函数名等名字
定义标识符的规则:
1.以字母、数字、下划线构成
2.第一个字符不能是数字
3.不能和关键字相同
4.见名知意
变量:
概念:在程序运行过程中会发生变化的量
定义格式:
[存储类型] 数据类型 变量名;
运算符
算数运算符:+ 、- 、* 、/
/:整除取整
%:小数灭有余数
++:
int a=5;
a++;//a=a+1;
a—;//a=a-1;
a++;//a=a+1;
先赋值后自加1
++a;//a=a+1;
先自加1后赋值
单独成句使用的时候都进行了自加1,没有区别
a—;//a=a-1;
先赋值后自减1
—a;//a=a-1;
先自减1后赋值
单独成句使用的时候都进行了自减1,没有区别
练习:
1. 以下程序输出结果是
#include
int main(int argc, char argv[])
{
int a = 10;
int b = a++;//b=10 a=11
int c = a + b;//c=21
int d = (b++) +c;//10+21=31 b=11
printf(“%d = \n”,d);
return 0;
}
[单选题]
A. d = 31
B. d = 32
C. d = 33
D. d = 34
include
int main(int argc, char argv[])
{
int a = 10;
int b = a—;//b=10 a=9
int c = a + b + 2;//21
int d = (b—) + (++c); //c=22 d=10+22=32 b=9
printf(“%d\n”,d);
}
[单选题]
A. d = 31
B. d = 32
C. d = 33
D. d = 343.#include
int main(int argc, char argv[])
{
int a = 10;
int b = ++a;//a=11 b=11
int c = a + (b++);//c=11+11=22 b=12
int d = b+c;//d=22+12=34
printf(“%d\n”,d);
return 0;
}
[单选题]
A. d = 31
B. d = 32
C. d = 33
D. d = 34关系运算符:>、<、>=、<=、==、!=
==:判断左右两边的值是否相等
!=:判断左后两边的值是否不相等
关系成立返回值1,不成立返回0
C语言中0位假,非0为真赋值运算符:=、+=、-=、*=、%=、/=、&=、|=、^=……
=:将等号左边的值赋给等号右边变量
a+=b;//a=a+b;
a-=b;//a=a-b;逻辑运算符:
&&:逻辑与(都为真,则为真。一个为假,则为假)
截断法则:第一个表达式为假,第二个表达式不再进行判断,直接输出逻辑关系为假
||:逻辑或(都为假,则为假。一个为真,则为真)
截断法则:第一个表达式为真,第二个表达式不再进行判断,直接输出逻辑关系为真
!:逻辑非(真变假,假变真)
问:!a什么时候这个表达式是成立的?a=0
a==0和成立条件一样位运算:
&:位与(全1为1,有0则0)
int a=5,b=11;a&b?
0101
&
1011
———————
0001 = 1
|:位或(有1为1,全0为0)
int a=5,b=11;a|b?
0101
|
1011
———————-
1111 = 5
^:异或(相同为0,不同为1)
int a=5,b=11;a^b?
0101
^
1011
———————
1110 = 14
~:按位取反(0变1,1变0)补充:
数值在计算机中存放都是补码
正数:正数的原码、反码、补码都一样
负数:负数反码等于原码除符号按位取反
补码等于反码加1
举例:
int -6:
原码:1000…0000110
反码:1111…1111001
补码:1111…1111010 将补码作为原码再求补码,求出来的补码就是原码
对补码再求补码得到是原码
反:1000…0000101
补:1000…0000110 = -6
<<:左移
左移多少位,右边添加多少个0,左边删除多少位
int a=5;a<<3
0000…0000101 << 3 ———->0…0000101000=40
52^3倍
*>>:右移
正数:右移多少位,左边添加多少个0,右边删除多少位
负数:右移多少位,左边添加多少个1,右边删除多少位
int a=5; a>>2?
0000…0000101>>2 —>000000…00001 =1
5/2^2
-6: -6>>2
原码:1000…0000110
反码:1111…1111001
补码:1111…1111010 >> 2
111111…11110
反:100000…00001
补:100000…00010 = -2
-6/2^2
取数的时候往小的数取
eg:-1.4就取-2、-0.7就取-1
三目运算:
格式:表达式1?表达式2:表达式3;
执行顺序:
先判断表达式1是否成立,成立执行表达式2,不成立执行表达式3