目录
1.常见关键字
2.typedef
unsigned int太长了所以重命名为uint
3.static
static的作用是什么呢?
1.修饰局部变量
2.修饰全局变量
3.修饰函数
<修饰局部变量>
打印10个2
使用static后打印2 3 4 5 6 7 8 9 10 11
static修饰局部变量使得变量出了作用域不会销毁,影响了变量的生命周期
本质的原因是一个普通的局部变量是放在栈区的,而被static修饰的局部变量,是放在内存的静态区的
<修饰全局变量>
static修饰全局变量时外部链接属性就变成了内部链接属性,只能在自己所在的.c文件内部使用,其他.c文件无法使用,影响了变量作用域
<修饰函数>
函数和全局变量类似,具有外部链接属性,static在其中的作用一样,让外部链接属性变成内部链接属性。
最终影响的还是作用域。
4.#define和宏
#define和宏的差别是宏有参数
//define 定义常量和宏
#define M 100
#define STR "hello"
#define MAX(x,y)((x)>(y)?(x):(y))//MAX宏名 (x,y)宏的参数(x>y?:y)宏的内容
int main()
{
int a=10;
int b=20;
int m=MAX(a,b);
printf("%d\n",m);
return 0;
}
4.指针
内存是电脑上特别重要的存储器,计算机中程序的运行都是在内存中进行的 。 所以为了有效的使用内存,就把内存划分成一个个小的内存单元,每个内存单元的大小是1个字节。 为了能够有效的访问到内存的每个单元,就给内存单元进行了编号,这些编号被称为该内存单元的地 址。
//一个内存单元的大小是一个字节
&取地址操作符*解引用操作符
4.1指针变量的大小
指针变量的大小取决于地址的大小
//32位平台下地址是32个bit位(即4个字节)
//64位平台下地址是64个bit位(即8个字节)
x86就是32位
x64就是64位
5.结构体
结构体是C语言中特别重要的知识点,结构体使得C语言有能力描述复杂类型。 比如描述学生,学生包含: 名字+年龄+性别+学号 这几项信息。
初始化:
再.就可以拿到成员
用指针就解引用用.
如果不用指针就用箭头