short s = 0;
int a = 10;
printf("%d\n",sizeof(s=a+10));//2
printf("%d\n",s);//0
//sizeof操作符中的加法并不会真的执行,因此s中的值还是0;
int a = 0;//正数原码与补码相同,因此a在内存中存储000000000000
printf("%d",~a);//当a按位取反后存储为1111111111111(补码),打印的为原码,此时要把补码转成反码(补码减一),再转成原码(除符号位外,按位取反)
++和--,前置和后置
Int a=10;
Printf(“%d”,++a);//a=11;前置,先++后使用
Printf(“%d”,a++);//a=10;后置,先使用后++
Win+shift+s截屏
其中2和4都是将数组的首地址传过去为指针类型,所以空间大小只有四字节(32位机)
结构体函数末尾要加封号;
成员变量不用初始化;
在结构体中定义参数变量格式:结构体 结构名 对象名称={参数}
打印成员变量的三种方式:s1.name
(*pv).name
pv->name
0000 0011
0111 1111
1111 1111 1111 1111 1111 1111 1000 0010补码
1111 1111 1111 1111 1111 1111 1000 0001反码
1000 0000 0000 0000 0000 0000 0111 1110原码
打印的值为-126
Char类型转int类型,130存储在c中,高位全补一,此时存储的为补码,打印出来的为原码。
c参与了表达式运算,发生整型提升