1.数据类型介绍
1.1类型的基本归类:
整型家族:
构造类型:
数组类型
结构体类型struct
枚举类型enum
联合类型union
指针类型:
int *pi;
char*pc;
float*pf;
void*pv;
空类型:
void表示空类型(五类型)
通常应用于函数的返回类型,函数的参数,指针类型
2.整形在内存中的存储:
2.1原码,反码,补码
相信大家理解的差不多了,让我们看看一个例子,会有更深的印象哟~
2.2大小端介绍 (数据需要大于2个字节)
在内存的存储可以任意,只要有需要的时候,把它拿出来可以还原原来的数据即可
eg:
我们通常使用大小端
大端:数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址中
小端:数据的低位保存在内存的低地址中,而数据的高位,保存在内存的高地址中
举个例子:
上图第一个是大端,第二个是小端
设计一个小程序来判断当前机器的字节序
2.3练习
1,请问该代码输出结果是什么
int main()
{
char a = -1;
signed char b = -1;
unsigned char c = -1;
printf("%a=%d,b=%d,c=%d", a, b, c);
return 0;
}
解析:
2. 请问该代码输出结果是什么
3请问该代码输出结果是什么
int main()
{
char a = 128;
printf("%u\n", a);
return 0;
}
解析:
4 请问该代码输出结果是什么
int main()
{
int i = -20;
unsigned int j = 10;
printf("%d\n", i + j);
return 0;
}
解析:
5 请问该代码输出结果是什么
6 请问该代码输出结果是什么
int main()
{
char a[1000];
int i;
for (i = 0; i < 1000; i++)
{
a[i] = -1 - i;
}
printf("%d", strlen(a));
return 0;
}
解析:
7 请问该代码输出结果是什么
int main()
{
unsigned char i = 0;
int main()
{
for (i = 0; i <= 255; i++)//因为无符号char范围是0~255,所以无限循环
{
printf("hello world\n");
}
return 0;
}
}
3.浮点型在内存中的存储
任何一个二进制浮点数V可以表现为下面的形式
eg:
int main()
{
int n = 9;
float* pfloat = (float*)&n;
printf("n的值为:%d\n", n);
printf("*pfloat的值为:%f\n", *pfloat);
*pfloat = 9.0;
printf("num的值为:%f\n", *pfloat);
return 0;
}
解析: