C语言初学者二
一、常量和变量
常量:在程序使用之前已经设定好了,在整个程序运行过程中不发生变化的量就是常量。
变量:在程序运行期间可能会改变或被赋值的量被称为变量。
定义变量的方式:
int age = 150;
float weight = 42.2f;
char ch = ‘w’;
一次定义多个变量的方式:
int a,b
int a=b=3
int a=2,b=3
一.变量
1.变量的命名规则
C语言变量名的命名规则:(可以字母,数字,下划线混合使用)
1.标识符由字母(A-Z,a-z)、数字(0-9)、下划线“_”组成,并且首字符不能是数字,但可以是字母或者下划线,变量名中不能有空格。例如,正确的标识符:abc,a1,prog_to。
2.不能把C语言关键字作为用户标识符,例如if ,for, while等
3.标识符对大小写敏感,即严格区分大小写。一般对变量名用小写,符号常量命名用大写。
4.标识符命名应做到“见名知意”,例如,长度(外语:length),求和、总计(外语:sum)。
5.C语言中把标识符分为三类:关键字,预定义标识符,用户自定义标识符
建议命名方式:
1.尽量不使用单一字母命名;
2.尽量简写每个变量名称,可以吧教程字母的(元音)去掉形成缩写;
3.当变量所有多个单词组成时,第一个词小写字母开头,后面每个词的第一个字母大写;
2.变量的分类
局部变量
int main()
{
//在大括号内定义的变量都是局部变量
int a = 10;
return 0;
}
全局变量
//在大括号外定义的变量就是全局变量
int a = 100;
int main()
{
return 0;
}
当局部变量和全局变量名字冲突的情况下,局部变量优先。
3.变量的应用:
int main()
{
int a = 0;
int b = 0;
int sum = 0;
//scanf()输入函数
scanf("%d %d",&a,&b);
sum = a + b;
printf("sum = %d\n", sum);
return 0;
}
如果和我一样使用的是 Visual Studio 2019 使用输入函数报错时把#define _CRT_SECURE_NO_WARNINGS 1放在源文件的第一行。
4.变量的作用域和生命周期
作用域
作用域(scope),程序设计概率,通常来说,一段程序代码中所有到的名字并不总有效/可用的,而限定这个名字的可用性的代码范围就是这个名字的作用域,在同一个作用域中不能出现两个名字相同的变量,否则会产生命名冲突;但是在不同的作用域中,允许出现名字相同的变量,它们的作用范围不同,彼此之间不会产生冲突。
变量作用域范围
局部变量的作用域:在函数内部定义的变量,它的作用域也仅限于函数内部出了函数就不能使用了,我们将这样的变量称为局部变量(Local Variable)。
全局变量的作用域:所有工程函数外部定义的的变量,这样的变量称为全局变量(Global Variable)。
变量的生命周期
变量的生命周期:变量的创建和销毁之间的时间段
局部变量生命周期:进入某个函数内部时生命开始,出了函数范围后生命结束。
如下代码:
int main()
{
int a = 10;
printf("%d\n",a)
return 0;
/*变量a在这个int mian()函数内是有生命的,出了这个范围a就失去了生命,*/
}
全局变量的生命周期:全局变量的生命周期和整个程序的生命周期相同。
如下代码:
int b = 100;
int main()
{
printf("%d\n",b)
return 0;
/*变量b可以在int main()内生效,当然出了int main()函数体,进入其他函数中依旧生效。
}
二.常量
1.常量的分类
1.字面常量
int main()
{
//字面常量的定义
3.25;
25;
//字符常量
'a';
//字符串常量
"asdgasga";
return 0;
}
2.const修饰的常变量
int mian()
{
//这时num变量值就不在发生改变,const只是给这个变量加了一个常属性,变量本身还是变量。
const int num = 10;
printf("num = %d\n",num);
return 0;
}
//演示效果
int mian()
{
int arr[10] = {0}
/*这两个试子都是定义一个数组大小是10,数组的大小需要是
一个常量,通过const转变的常变量,不能被定义,因为通过
const转变后它的本质还是变量。*/
const int n = 10;
int arr2[n] = {0}
return 0;
3.#define 定义的标识符常量
#define Max 1000;
int main()
{
int c = Max;
printf("n = %d",c);
return 0;
}
4.枚举常量
enum Sex
{
//这种枚举类型的变量未来可能的取值
MALE,//0
FEMALE,//1
SECRET,//2
//这三个就是枚举常量,它们的值是从0开始,打印时会打印0/1/2.
//枚举常量的值不可更改但可以赋初值。
LES=5
};
int main()
{
//s就是使用枚举常量的变量,只能取枚举类型内的的常量。
enum Sex s = MALE;
//s的取值范围只能是上面枚举类型所包含的值
return 0;
}