remeke (remeke) · GitHub
https://github.com/remeke今天继续学习了数据的存储的内容
#include<stdio.h>
int main()
{
int i=-20;
unsigned int j=10;
printf("%d\n",i+j);
return 0;
}返回结果为-10

#include<stdio.h>
#include<windows.h>
int main()
{
unsigned int i;
for(i=9;i>=0;i--)
{
printf("%u\n",i);
Sleep(300);
}
return 0;
}由于unsigned int i表示i的值恒大于0,故程序会陷入死循环,i=-1时会输出i的补码,一个超级大的数

#include<stdio.h>
#include<windows.h>
int main()
{
char a[1000];
int i;
for(i=0;i<1000;i++)
{
a[i]=-1-i;
}
printf("%d",strlen(a));
return 0;
}输出结果为255
首先可以知道数组内的元素为-1,-2,-3……-999,-1000。由于strlen函数将会在\0出停下而似乎该数组没有\0。但是输出的值却并不是随机值。由于char类型能表示的值的范围在-127到128之间,并且由图可得,-128减1后变为了127,然后继续减,出现3、2、1、0,然后再是-128、-127……这里就出现了0由于-1到1之间有255个元素,所以输出的个数为255。
#include<stdio.h>
#include<windows.h>
unsigned char i=0;
int main()
{
for(i=0;i<=255;i++)
{
printf("hello world\n");
printf("%d\n",i);
Sleep(100);
}
return 0;
}根本停不下来,i<=255恒成立,255+1=0。
浮点型再内存中的存储
常见的浮点数:
3.14159,1E10,浮点数家族包括:float,double,long double类型
#include<stdio.h>
#include<windows.h>
int main()
{
int n=9;
float *pFloat=(float*)&n;
printf("n的值为:%d\n",n);
printf("*pFloat的值为:%f\n",*pFloat);
*pFloat=9.0;
printf("num的值为:%d\n",n);
printf("*pFloat的值为:%f\n",*pFloat);
return 0;
}输出结果:

欲知如何,且看明日。
版权声明:本文为m0_63299818原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。
https://www.bilibili.com/video/BV1q54y1q79w?