首先是变量分为:1.局部变量 2.全局变量
而全局变量与局部变量也很好分辨,位于主函数外则为全局变量,同理位于主函数{}内则为局部变量。
如 int a =10
int main()
{
int b = 666;
return 0;
} 这里的a为全局变量,b为局部变量
关于变量的作用域与生命周期:
全局变量的作用域为整个工程文件,生命周期就是整个程序的生命周期
Ps:全局变量跨源文件使用时要声明一下(extern)
而局部变量的作用域则只为{}内,生命周期也只在{}内
如
int main()
{
int a = 666;
{int b=114514;
}
return 0;
} 这里a的作用域为第一个大括号到最后一个大括号,包括了中间的大括号。而b的作用域只有中间的大括号。
其次是常量,常量可分为
1.字面常量 如10 145 'a' "adfafsdf"
2.const修饰的常变量
如const int num = 10;注意此时num虽然为常变量,但它的本质还是变量
3.#define定义的标识符常量
4.枚举常量 可以一一列举的常量 如abo血型 性别 有固定选项
枚举常量写法 如enum ABO
{
A,
B,
AB,
O
};
最后是字符串 字符串即 一串字符如"dfawefagae" 且字符串后面隐藏了一个\0 \0是字符串的结束标志
当我们创建一个字符串char arr[]="sdfawegf";时 使用监视就会发现明明只有8个字符却显示又9个元素最有一个是\0
我们再随手创建两个字符串char arr1[] = "abc";
char arr2[] = { 'a','b','c'};
使用printf("12:%d\n", strlen(arr1));
printf("13:%d\n", strlen(arr2));来看他们的字符串长度
结果arr1显示3,arr2显示33 明明都只有abc三个元素为什么会如此呢
这是因为arr02没有\0 于是就不会终止 刚好在内存33这个位置碰到\0就停止了
当我们给char arr2[] = { 'a','b','c',‘\0’};这样手动加上\0后则
两个字符串长度都为3。这就说明了\0是字符串的终止符号。