变量的作用域和生命周期
作用域: 这个变量在哪里使用,哪个领域就是作用域;
局部变量的作用域:变量所在的局部范围;
全局变量的作用域:整个工程
变量的生命周期:变量的创建和销毁之间时间段
局部变量的生命周期:进入局部范围生命开始,出局部范围生命结束
全局变量的生命周期:程序的生命周期
int main()
{
printf("bit");
int a = 10;
printf("a = %dn", a);
return 0;
}
常量:
- 字面常量
- const修饰的常变量
int num = 10; //变量
num = 20;
printf("num = %dn", num);
const int num = 10;
printf("num = %dn", num);
return 0;
- num就是常变量—具有常属性(不能被改变的属性)
const就是固定数值用的
- #define 定义的标识符常量:
#define MAX=1000
int n =MAX;
printf("%dn",n);
枚举常量:
性别
enum Sex
{
//这种枚举类型的变量的未来可能取值
//枚举常量从零开始排
Male,
Female,
Secret
};
int main()
{
enum Sex = Male;
printf("%dn", Male);
printf("%dn", Female);
printf("%d,Secret");
return 0;
}
- 字符串:即一串字符
"hellon"
int main()
{
char arr[]="hello";
return 0;
}
这种由双引号引起来的一串字符称为字符串字面值(String Literal)、字符串。
字符串的结束标志是一个 的转义字符。在计算字符串长度的时候 是结束标志,不算做字符串内容。
字符数组-数组是一组相同类型的元素
字符串在结尾的位置隐藏了一个 的字符
int main()
{
char arr1[] = "abc";
char arr2[] = {'a', 'b', 'c'};
printf("%sn", arr1);
printf("%sn", arr2);
return 0;
}
以上例子中:
双引号引起来的是一串字符;单引号引起来的是一个字符
f5调试后可以发现arr1是abc,因为它的结尾有abc
arr2的结尾并没有结束符号 ,所以后面的数组空间被占用,出现乱码“烫烫烫
那么修改一下:
#includeint main() { char arr1[] = "abc"; char arr2[] = {'a', 'b', 'c',' '}; printf("%sn", arr1); printf("%sn", arr2); return 0; }
使用strlen求字符串的长度:
eg:
#include#include int main() { int len = strlen("abc"); //string length //引用头文件 printf("%dn", len); return 0; }
eg2:
#include#include int main() { char arr1[] = "abc"; char arr2[] = {'a', 'b', 'c', ' '}; printf("%dn", strlen (arr1)); printf("%dn", strlen (arr2)); return 0; }



