1.局部变量和全局变量
2.字符串中\0的作用以及注释
3.static的作用
1:局部变量的作用域是变量所在的局部范围,生命周期是进入作用域生命周期开始,出作用域生命周期结束。全局变量的作用域是整个工程,生命周期是整个程序的生命周期。
#include<stdio.h>
int main()
{
{
int a = 10;
printf("%d\n", a);
}
printf("%d\n", a);
return 0;
}
图中括号里面的printf可以打印出来,外面的会报错,未定义标识符‘a'。这是个局部变量说明局部变量的生命周期在出作用域就结束了。
当局部变量和全局变量冲突的时候,该怎么办呢?
#include<stdio.h>
int a = 20;
int main()
{
int a = 10;
printf("%d\n", a);
return 0;
}
结果是10,所以当局部变量和全局变量一样的时候,局部变量优先使用。
(一个全局变量不给初始化的时候默认为0
一个局部变量不给初始化的时候默认为随机值)
数组的错误
int n = 10; int arr[n] ={0}这个数组的创建是错误的,数组的大小只能是常量不能是变量
2:字符串中"\0作为结束的标志"。
为什么会出现这个结果呢,因为双引号代表一个字符串,它后面默认有一个\0,所以字符串打印出来是app,单引号字符后面如果没有\0的话,它的值是随机的,当后面加上一个\0的时候,它就可以打印出来app了。
单引号用%c打印,双引号用%s打印。
关于注释有2个特殊的:
\ddd ddd表示1~3个八进制的数字。如: \130 X
\xdd dd表示2个十六进制数字。 如: \x30 0
3.static的作用
1>static修饰局部变量
2>static修饰全局变量
3>static修饰函数
当static修饰局部变量时,看下面的例子