7_24日C语言|整型提升相关介绍

来源:互联网 发布:amazing frog 知乎 编辑:程序博客网 时间:2024/06/05 20:38

整型提升

int main(){char a = 10;char b = 20;char c = a+b;return 0;}

分析: 
截断 
char a 和 char b 属于截断; 
对于char c = a+b 来说属于整型提升再截断 
提升

char a = -1;unsigned char b = -1;printf("%d\n",a);//-1printf("%d\n",b);//255

对于char a = -1; 
10000000 00000000 00000000 00000001 //-1的原码 
11111111 11111111 11111111 11111110//-1的反码 
11111111 11111111 11111111 11111111//-1的补码 
截断后:11111111//-1 
整型提升:补符号位 
11111111 11111111 11111111 11111111//-1 
对于 unsigned char b = -1; 
10000000 00000000 00000000 00000001 //-1的原码 
11111111 11111111 11111111 11111110//-1的反码 
11111111 11111111 11111111 11111111//-1的补码 
截断后:11111111//-1 
整型提升:补符号位,由于是无符号数补0 
00000000 00000000 00000000 11111111//255 
算数转换 
当两者类型不同时,要将精度小的转为精度大的 
精度转换

float f =3.14;int num = f;// 精度丢失,隐式转换

N/A表示无结合性 
memset(起始地址,初始化字符,字节数);//内存操作函数在string.h中 
注意

//数组初始化for(i = 0; i<sizeof(arr)/sizeof(arr[0]); i++)arr[i]=1;//memset初始化memset(arr,1,sizeof(arr));//两者效果是不同的,因为数组每个元素是4个字节,memset是对每个字节进行赋值,但初始化为0效果是相同的

函数的调用,为形式参数开辟空间,形参的实例化; 
传值调用,形参是实参的临时拷贝,形参的修改对实参无影响; 
传址调用,形参是实参的临时拷贝,形参的修改对实参有影响; 
实参主要有:变量,常量,表达式,函数等; 
形参在调用结束后销毁;

原创粉丝点击