第四次课-----变量
一、变量的定义
变量的概念:值可以发生改变的量
语法:类型名 变量名,变量名,变量名;
类型名 变量名 = 初值,变量名 = 初值;
char a,b,c;
int e;
char a = 0,b = 0,c = 0;
char a = 0;
unsigned char e = 0;
int height = 170;
int weight = 0;
注意:
1.变量名以字母、数字、下划线构成且第一个字符不能是数字
char 8lirenchong;//错误的,数字不能作为第一个字符
char hua guoyong;//错误的,有空格
char hua_guo_yong;//正确的
char lirenchong8;//正确的
int a*b;//错误的,*不符合标识符命名规范
int ab&c;//错误的,&不符合标识符命名规范
int _ab;//正确的
//变量名的字母分大小写,ab和AB不是同一个变量名
int ab;
int AB;
2.变量要先定义再使用
a = 45;//错误,a要先定义再使用
char a;
3.变量是占据内存的,占据的内存大小由变量的数据类型决定
char a;//a占据1byte
unsigned char g;//g占据1byte
int b;//b占据4byte
unsigned int bc;//bc占据4byte
short int e;//e占据2byte
long int lint;//lint占据4byte
long long int llint;//llint占据8byte
float f;//f占据4byte
double d;//d占据8byte
4.同一个作用域下,不能重复定义变量名
char a;
char a;//错误,重复定义变量a
5.变量的本质就是一块内存空间,变量名就是这块内存的名字,通过变量名对内存进行写或者读。
变量的赋值(写操作)和变量的输出(读操作):
int main(void)
{
char a,b;
a = 45;//把45赋值给a
//(把45写入a的内存块中)
b = a;//先读出a的值(45),再把45赋值给b
//(把45写入b的内存块中)
printf("a:%d,b:%d\n",a,b);//把a和b的值读出来
return 0;
}
6.要养成给变量赋初值为0的习惯
int a = 0;//在变量定义时,给变量赋值叫赋初值
a = 0;//不是赋初值,这叫赋值
7.定义变量时要根据需求来确定数据类型,防止“溢出”(超出取值范围)
int main(void)
{
char a = 0;
a = 128;//错误,超出了a的取值范围
return 0;
}
8.单词、关键字、标识符的区别
语句由单词构成
单词:
关键字:在vs2013中蓝色的单词,如int
标识符:
自定义标识符:自己定义的标识符,如char abc中的abc
预定义标识符:系统已经定义好的标识符,如printf
int main(void)
{
unsigned char height = 0;
printf("");
return 0;
}
C语言的标识符命名规范:由字母、数字、下划线构成且第一个字符不能是数字,且不能是系统占用的单词。
int main(void)
{
int float = 0;//错误的,float是关键字
int printf = 0;//错误的,printf是预定义标识符
int weight = 0;//正确的
printf("");
return 0;
}
9.作用域:一个代码空间
分类:
文件作用域:从文件头到文件尾的代码空间
函数作用域:函数的参数和函数体属于函数作用域,函数的返回值和函数名属于文件作用域
语句块作用域:后面讲解
结构体作用域:后面讲解
#include <>
char height = 0;//height属于文件作用域
int main(void)//main属于文件作用域
{
char a = 0;//a属于函数作用域
char b = 0;//b属于函数作用域
a = 45;
return 0;
}
int foot(int size)//foot属于文件作用域,size属于函数作用域
{
char a = 0;//a属于函数作用域
}
在同一个作用域内,不能出现相同的标识符
int foot(void)
{
int a = 0;
}
void foot(void)//错误,函数名不能相同
{
char a = 0;
}
一个标识符不能同时属于两个作用域,使用就近原则
#include <>
char height = 10;//height属于文件作用域
int main(void)
{
char height = 12;//height属于函数作用域
printf("%d\n",height);//使用的是函数里面的height,结果:12
return 0;
}