文章目录
常量
含义
在程序运行过程中不能改变的量。程序可以在程序中直接书写常量。
分类
整数常量
分类
十进制整数
直接写出数字,例:101、221、-54
八进制整数
以零开头,由0到7组成,例:0123、022、-032
十六进制整数
以0x开头 由0到9和A到F组成,例:0x123、-0x33
长整数
后面加大写L或小写l (不加默认为整型),例:128L、0x33L
无符号类型整数
后面加大写U或小写u (不加默认为有符号),例:12U、0x44U、067u
浮点数常量
必须以10进制形式出现
分类
小数形式
1.65、9.83、1.0、.12
小数点必须写出来不能省略,若其前或后有零,可省略
如:1.0、0.12可以写成1.、.12
指数形式
十进制数+E(或e)+十进制整数
如:1.23e5、2.5e-2
注意
1.
小数1.0和整数1是不同的。虽然两者在数值上相等,但两者类型不同。
不同的数据类型,在计算机的运算过程中采用的方式也不同,最终会导致结果不同
2.
实行常量默认是double型的实数,如果在数的后面加字母F或f,则认为是float型的实数。
字符常量
分类
普通字符常量
英文单引号引起来的字符,如:‘A’、‘#’
转义字符常量
英文单引号引起来,反斜杠开头,如:‘\’、‘\101’
注意
由于ASCII码的存在,将码值和字符关联在一起。所以一个字符常量的表示方法有多种,可以使用字符本身,也可以使用数值,在程序的编写过程中尽量使用字符本身,这样可以提供程序的可读性。如:‘A’与65储存在计算机中时完全一样。
变量
含义
在程序运行过程中其值可以改变的量
分类
特点
1.
变量的名称必须用标识符来标识。
2.
变量由变量名、变量值、存储空间组成
3.
变量根据数据类型可以分为不同的变量类型,不同类型变量的存储空间是不同的
4.
变量代表一个有名字的、具有特定属性的一个存储单元
5.
变量用来存放数据,也就是存放变量的值
6.
变量必须先定义,后使用
变量的定义
变量定义的本质时按照变量的数据类型给变量分配一定的存储空间,格式如下:
[存储类别][类型说明符] [变量1],[变量2],[变量3],…,[变量N];
即:【变量名】 【存储空间】
注意
1.
存储类别在大多数使用情况下是不指明的,默认缺省为auto类比
2.
类型说明符为整型、浮点型或字符型的说明符
3.
相同类型的各个变量,可以在一行语句中定义。各变量间用逗号隔开,语句末尾以分号表示结束。
变量的赋值
1.
变量只有通过赋值的方式才能使变量的第三要素(变量的值)有意义
2.
变量赋值需要使用赋值运算“=”
3.
变量的赋值,有两种方式,一是:先定义后赋值,二是:定义的同时及进行赋值
先定义后赋值的方式
适用于代码中的任何地方,只需要修改变量的值,就可以使用赋值运算符“=”
将其赋值。赋值时,运算符“=”右边可以是一个常量,也可以是一个变量。
例:
#include<stdio.h>
int main()
{
int a,b;
a=10;
b=a;
}
定义的同时进行赋值的方式
又称作变量的初始化,其方法是在定义的变量后,使用赋值运算符“=”
进行赋值。灵活的使用初始化方法,可以是代码更简洁,可读性更高
#include<stdio.h>
int main()
{
int a=10,b=a;
}
4.
对一个变量赋值以后,该值被存放在分配给该变量的内存空间中
5.
不允许多个未定义的同类型变量连续初始化
如:
错误形式:
int a=b=10;
正确形式:
int a=10,b=10;
6.
初始化时一般应使“=”右边表达式的数据类型和“=”左边变量的类型保持一致,如不一致,系统就会进行自动赋值转换
例:
#include<stdio.h>
int main()
{
int a=3.14;
printf("a=%d",a);
}
由于定义a为整型变量,但赋值数据为浮点型数据,故输出结果为:
a=3
7.
只定义未赋值或未初始化的变量,其值使由定义时所使用的存储类型决定的。不同编译器情况是不同的,有些编译器下其值是未知的
例:
#include<stdio.h>
int main()
{
char a;
printf(“a=%c”,a);
}
由于未给定义的字符a进行初始化或赋值,在dev-c++中输出结果为:
a=
常变量
含义
既具有常量的特点也具有变量的特点。
例:
#include<stdio.h>
int main()
{
const double pi=3.14159;
double s;
s=pi*10*10;
printf("s=%lf",s);
}
特点
1.
常变量是一种特殊的变量
2.
变量在定义时,在类型说明符前加const说明符,表示该变量为一个常变量
3.
常变量同样具有变量的三要素:变量名,存储空间和变量值(初值)。
4.
常变量必须在定义的同时赋值,并且在程序运行的过程中,其值不能发生改变,体现出常量的性质。
5.
常变量这种特性适用于某些经常用到的常数数值,如圆周率Π
特殊说明——符号常量(#define)
例:
#include<stdio.h>
#define PI 3.14
int main()
{
const double r=10;
double s;
s=PI*r*r;
printf("s=%lf",s);
}
其代表含义为后续程序中出现的“PI”都将以“3.14”进行替换
常变量与符号变量的不同
1.位置
常变量出现在函数体内;符号变量出现在函数体外
2.获取值的方式
常变量使用赋值号”=“对变量进行初始化或赋值;符号常量使用空格隔开
3.分号使用与否
常变量属于变量,定义或赋值后使用分号结束,是一条正常的程序语句;符号常量后不使用分号。
4.内存分配与否
const定义的常变量在程序运行时在常量表中,系统为其分配内存;define是宏定义,程序在预处理阶段使用define定义的内容进行了替换,系统不为其分配内存。
5.编译时类型检查与否
const定义的常变量,在编译时进严格的类型检验,可以避免出错;define定义的常量,预处理时只是直接进行了替换,所以编译时不能进行数据类型检验
总结
简要总结变量、常量、常变量和符号常量的知识点,并分析后两者的不同之处。