山不在高,有仙则名。水不在深,有龙则灵。
----CSDN 时时三省
Release优化
示例:
这个代码的结果就会成一个死循环 一直打印haha
为什么会死循环了呢
因为越界访问了
内存有一个栈内存
把大的地址为高地址 低的地址为低地址
i和arr是局部变量
因为局部变量是放在栈区上的
栈区的使用习惯是:先使用高地址再使用低地址
这个时候i肯定在上面 arr肯定在下面
数组随着下标的增长,地址是由低到高变化的
等访问到下标为12的位置可能就是i的空间就会进入死循环
如果这个代码是Debug版本就会是这样
如果换成Release版本就不会死循环
Release版本是做优化的
在release版本里面把i放在arr的下面了 这就是它做的优化
数据类型介绍
前面我们已经学习了基本的内置类型:
char //字符数据类型
short //短整型
int //整形
long //长整型
long long //更长的整形
float //单精度浮点数
double //双精度浮点数
//C语言有没有字符串类型?
以及他们所占存储空间的大小。
类型的意义:
1 .使用这个类型开辟内存空间的大小(大小决定了使用范围)。
2 .如何看待内存空间的视角。
类型的基本归类
整形家族:
char
unsigned char
signed char
short
unsigned short [ int ]
signed short [ int ]
int
unsigned int
signed int
long
unsigned long [int]
signed long [ int ]
浮点数家族:
float
double
构造类型-自定义类型:
>数组类型
>结构体类型struct
>枚举类型enum
>联合类型union
指针类型:
int * pi ;
char * pc ;
float * pf ;
void * pv ;
空类型:
void表示空类型(无类型)
通常应用于函数的返回类型、函数的参数、指针类型。
函数返回类型void test ( );
函数参数void test ( void );
指针 void * p;
大小端介绍
什么是大端小端:
大端(存储)模式,是指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址中;
小端(存储)模式,是指数据的低位保存在内存的低地址中,而数据的高位,保存在内存的高地址中。
示例:
低地址 11223344 高地址
大端字节序
低地址 44332211 高地址
小端字节序
大端字节序:
把数据的低位字节序的内容存放在高地址处,高位字节序的内容存放在低地址处
小端字节序:
把数据的低位字节序的内容存放在低地址处,高位字节序的内容存放在高地址处