8月15日 数据的存储
1.DEBUG版本
int main()
{
int arr[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9,10 };
for (int i = 0; i < 12; i++)
{
arr[i] = 0;
printf("hehe\n");
}
return 0;
}
i 和 arr 是局部变量,放在栈区里,而栈里先使用高地址,再使用低地址。
数据随着下标的增长,地址由低到搞变化。
最后导致,访问arr[12]的地址时就算 i 的地址,改变 i = 0,从而导致了死循环。
2.RELEASE版本
代码没有发生变化,但是i 和 arr 的地址发生了变化。
3.数据的类型
整形家族:char, int, short, long, long long
unsigned char, signed char
unsigned short, signed short
unsigned int, signed int
unsigned long, signed int
浮点型家族:float, double
构造类型: 数组,struct 结构体, enum 枚举,union 联合体
指针类型: int * , char * , float * , void *
空类型: void