C语言基础(4)
一.关键字static
static可以被用来修饰局部变量,全局变量和函数。在修饰局部变量时,会延长局部变量的生命周期到整个程序;在修饰全局变量时,全局变量不能被外部函数引用;在修饰函数时,与全局变量的作用同理。
内存是一块很大的存储空间,分为三个区域:栈区,堆区,静态区。栈区是用来存放临时变量和局部变量的;堆区的作用是动态的内存分配;而静态区的作用是存放全局变量和静态变量。
对局部变量而言,实际上static的作用本质,就是将原本创建在栈区的局部变量创建在了静态区上,使局部变量的生命周期延长;对全局变量而言,全局变量本身是具有外部链接属性的,在其他源文件可以加上extern来引用全局变量,而static的作用,就是将这种外部链接属性变成了内部链接属性。使其只能在全局变量所在的源文件中被使用;对函数的作用与全局变量同理。
二.#define定义的宏
宏是一种非常类似函数的东西,Microsoft Word中对宏定义为:“宏就是能组织到一起作为一独立的命令使用的一系列word命令,它能使日常工作变得更容易”。
- #define M 100
- #define SRT "hehe"
-
- int main()
- {
- printf("%%d", M);
- printf("%%s", SRT);
- return 0;
- }
#define可以用来定义数字,也可以用来定义字符串,这里的M被定义为100,而它就变成了大小为100的常量。
- #define ADD(X,Y) ((X)+(Y))
-
- int main()
- {
- int a = 10;
- int b = 20;
- int c = ADD(a, b);
- printf("%%d", c);
- return 0;
- }
#define也可以定义运算顺序,起到类似函数的作用。
三.指针浅谈
一个一个的指针相当于一个一个内存的编号,一个指针管的内存大小是一个字节,当创建变量的大小为四个字节时,取最小的那个指针,作为这四个内存的指针。
指针大小是由操作系统的位数决定的,32位操作系统对应的指针大小是4个字节,64为操作系统对应的指针大小是8个字节。32位操作系统最多能控制2的32次方个指针,也就是4gb的大小。
四.结构体
结构体指的是一组数据,比如描述一个东西,需要一组数据来描述,这时就需要用结构体来描述了。结构体的使用方法是创建几个这个结构体需要的变量,先不用赋值,在用到时可以给这个结构体取一个名字,就能对其进行赋值;具体例子见如下代码。
- struct Stu
- {//结构体成员
- char name[20];
- int age;
- char sex[10];
- };
-
- int main()
- {
- struct Stu zhangsan = {"张三",30,"男"};
- struct Stu lisi = {"李四",24,"保密"};
- printf("%%s %%d %%s", zhangsan.name, zhangsan.age, zhangsan.sex);
- printf("%%s %%d %%s", lisi.name, lisi.age, lisi.sex);
-
- return 0;
- }