常量变量:
数据类型可以创建变量,也可以说数据类型服务于变量;
生活中的一些数据:
有些数据不能变:血型、性别、圆周率。
有些数据一定可变:工资、年龄、体重。
C语言用常量(不能改变)和变量(可以改变)来描述这些数据。
定义变量的方法:
int age =150;
float weight =45.5f;
char ch = 'w';
变量的分类:
局部变量
全局变量
int main()
{
//创建一个变量
//类型 变量的名字 =0(数值);
//类型 变量的名字;//不推荐
int age=20;
double weight =75.3;
age=age+1;
printf(“%dn”,age);//这里打印出来的age=21
weight=weight-10;
printf(“%lfn”,weight);
return 0;
}
在花括号内定义的变量都为局部变量,相反在外面的为全局变量。
当局部变量和全局变量名字冲突时,局部优先。例:
这里的a=10。
int main()
{
int a=0;
int b=0;
int sum=0;//存放a+b的值
//scanf函数是输入函数 也可写成scanf_s来表示。
scanf("%d %d",&a,&b);//第一个%的数放到a里面,第二个输入的数放在b里面。
sum= a + b;
printf(”sum=%dn",sum);
return 0;
}
变量的作用域和生命周期:
作用域:
生命周期:
变量的生命周期指的是变量的创建和销毁。
局部变量:进入局部范围生命开始,出局部范围生命结束。
全局变量:程序的生命周期。
常量:
C语言中常量分为以下几种:
1、字面常量。
int mian()
{
3.14;
10;
'a';
"abcdefg"
return 0;
}
2、const 修饰的常变量。
int main()
{
int num =10;//变量
num =20;
printf("num=%dn",num);//在这里的num是可以变的。
//如果要让num不可以变,那么只需要在int num =10;的前面加上const。
//const int num =10;此时的num就是常变量。-具有常属性(不能被改变的属性)
return 0;
}
本质上是变量,但是它却有了常属性。
3、#define 定义的标识符常量
#define MAX 10000 //不要加;
int main()
{
int n = max;
printf("n = %dn",n);//此时n=10000
return 0;
}
4、枚举常量
一般用于可以一一列举的常量
//性别
enum Sex
{
//这种枚举类型的变量未来可能取值
MALE,
FEMALE,
SECRET //这三个值都为枚举常量。它们的默认值从0开始,也可以赋初值,
};
int main()
{
enum Sex s = MALE;//创建一个性别s
printf("%dn",MALE);
printf("%dn",FEMALE);
printf("%dn",SECRET);//输出的值分别为0、1、2
return 0;
}
赋初值:
enum Sex
{
MALE=3,
FEMALE,
SECRET
};
int main()
{
enum Sex s = MALE;
printf("%dn",MALE);
printf("%dn",FEMALE);
printf("%dn",SECRET);//输出的值分别为3、4、5
return 0;
}
补充:
常量:分为直接常量和符号常量 。直接常量:分为整型、实型、字符型和字符串型。(整型和实型合称为数值常量)
常量:
整型常量:就是常整数,包括正整数、负整数和0。八进制在书写时以数字0作前缀;十六进制以0x作前缀。 实型常量 :又称浮点型常量,采用十进制小数形式 和 指数形式表示。 字符型常:用单引号括起来的单个字符,分为普通字符(‘a’,‘Z’,‘6’,’#’ )和转义字符(’n’是换行符、’t’是水平制表符,横向跳格,8个空格)字符串型:用双引号括起来的字符串。 符号常量:用标示符代表一个常量,使用之前要先定义。
实型常量:又称浮点型常量,有 十进制小数形式 和 指数形式 两种表示形式。
计算机以字母e或E代表以10为底的指数。
例如:12e3等等
字符常量
普通字符:用单撇号括起来的一个字符
在内存中占一个字节。单引号内如果是一个空格符,也是一个字符常量。字符常量的值,就是它在ASCII编码表中的值是个从0~127之间的整数,因此字符常量可以作为整型数据来进行运算。
转义字符主要用来表示那些用一般字符不便于表示的控制代码,构成字符常量的控制字符必须用转义字符表示,这种“控制字符”在屏幕上是不能显示的,转义字符虽然包含两个或多个字符,但它只代表一个字符。转义字符的意思是将 后面的字符转换成另外的意义。
转义字符分为一般转义字符、八进制转义字符和十六进制转义字符。
字符串常量
字符串常量是用 双撇号 "" 括起来的多个字符的序列,如:“a”。
只要是“双撇号”括起来的,就算只有一个字符也叫字符串。 一个字符在内存中只占一字节,而字符串本质上是多个字符组成的字符数组。C语言规定,在每一个字符串常量的结尾,系统都会自动加一个字符’ ’作为该字符串的“结束标志符”,系统据此判断字符串是否结束。 :’ ’是系统自动加上的,不是人为添加的。- ’ ’ 是 ASCII 码为 0 的字符,它不会引起任何控制动作,也不是一个可以显示的字符。- 比如字符串常量"CHINA",表面上看它只有 5 个字符,但实际上它在内存中占6个节,‘C’、‘H’、‘I’、‘N’、‘A’、’ ’ 各占一个字节。如果要输出该字符串,’ ’ 不会输出。系统从第一个字符 ‘C’ 开始逐个输出字符,直到遇到 ‘ ’,则表示该字符串结束,停止输出。
C 语言规定,1个英文字符占 1个字节,而 1个中文字符占 2个字节,中文的标点符号也是占 2个字节。
变量
他用来存放数据,也就是存放变量的值。
变量名开头必须是字母或下划线,不能是数字。实际编程中最常用的是以字母开头,而以下划线开头的变量名一般都是系统专用的。变量名绝对不可以是C语言关键字,并且变量不能有空格。大写字母和小写字母是两个不同的字符,sum和SUM不同变量名。一般变量名用小写字母表示。
标识符
用来对变量、符号常量名、函数、数组、类型、等命名的有效字符序列统称标识符。
C语言规定标识符只能由字母、数字和下画线3种字符组成,且第一个字符必须是字母或下画线。例如:sum ,average , _total , Class , day ,month , Student_name , lotus_1_2_3 , BASIC , li_ling……- 不合法标识符:M.D.John ,¥123 , #33 , 3D64 , a>b(不能用标点符号 . ¥ # 等,标识符可以任意长,但一般只有前32位有效



