Day17、C提高1
1.typedef用法
用typedef有利于提高代码的可移植性
2.void用法
1.void不能直接定义变量,因为编译器不知道分配多少内存给变量(当定义一个变量,编译器必须知道分配多少内存)
2.对函数返回的限定,对函数参数的限定
3.void* 无类型指针(主要用于数据结构的封装)
3.sizeof用法
sizeof(类型);
sizeof(变量);
//sizeof的返回结果是unsigned int
//数组作为函数参数时,会退化为指向数组首元素的指针
4.内存分区
栈区:
栈区的内存自动申请自动释放,不需要程序手动管理
堆区:
用完堆内存,一定要手动释放
全局静态常量区:
静态区:
全局静态变量和局部静态变量都存储在静态区
局部静态变量符号的可见范围仅限于当前函数内部,全局静态变量可见范围从定义到文件结尾
全局区:
int a = 10;//外部链接
static int b = 20;//内部链接
//1.如果变量是内部链接的话,那么此变量只能在当前的文件内访问
//2.如果变量是外部链接的话,那么此变量可以被其他文件使用
常量区 (字符串常量 全局const变量):
1.const全局和局部变量的区别:
const全局变量在常量区,不能修改(直接或者间接)
const局部变量放在栈区,不能直接修改,可以间接修改
2.字符串常量:
char* p = "hello world!";