文章目录
- 一、常量是什么?
- (1)整型常量:
- (2)实型常量:
- (3)字符常量:
- (4)字符串常量
- (5)地址常量
- 二、define 和 const
- 宏定义
- const
- 三、变量是什么?
- 标识符命名规则
- 变量的作用域
- 局部变量
- 全局变量
- 四、c语言中常见的关键字
- 数据类型关键字
- 控制语句关键字
- 存储类型关键字
- 其他关键字
一、常量是什么?
在程序运行过程中,值不能被改变的量。
eg:数字1、2、3、0.1、3.14和字母’a’、‘b’、”hello“等
常量的分类:
(1)整型常量:
整数。如1、2、3、10000、0、-100、0x8A等
(2)实型常量:
有两种表示形式
①十进制小数形式:由数字和小数点组成。如123.456、-12.34等
②指数形式:由于计算机输入或输出时无法表示上标和下标,所以规定以字母e或E代表以10为底的指数,注意:e和E之前必须要有数字,且e和E后面必须为整数,不能写成e4、12e2.5.
正确表示:12.34e3(表示12.34*10^3)、-67.89e-16 (表示-67.89 *10 ^16)等
(3)字符常量:
有两种形式的字符常量
①普通字符常量:用单引号括起来的一个字符
如‘a’、‘B’、‘3’、‘#’。不能写成‘ab’或‘12’,注意单引号只是一个界限符,字符是指用单引号括起来的符号,不包括单引号。字符型在内存中是以ASCII码形式存储的,例如字符‘a’的ASCII码的十进制为97,在存储单元中存放的是97的二进制形式。
ASCII码 是 American Standard Code for Information Interchange 的缩写
83-53H-S
②转义字符:以字符\开头的字符序列
\n换行
\t水平制表符tab
'单引号
"双引号
\x十六进制形式
十六进制的转义字符 ‘\x56’ :x后面的十六进制数最多两个,最少一个
(4)字符串常量
用一对双引号括起来的若干个字符
如“ABC”、“123”等,用双引号把若干个(0个、1个、更多)字符括起来,字符串不包括双引号。注意不能写成‘abc’、‘123’,单引号内只能包含一个字符,表示字符常量;双引号内可以包含一串字符,表示字符串常量。
(5)地址常量
每一个常量、变量、数组的地址在程序运行期间是不能够被改变的,称为地址常量。
二、define 和 const
宏定义
PI也是常量,数值为3.1415;注意:在进行宏定义时,没有分号结束标记
#define PI 3.1415
const
定义语法:const 类型名 变量名 = 变量值
#include <stdio.h>#define PI 3.1415 // 常量int main(void)
{const int r = 3; // 只读变量float s = PI * r * r; // 圆的面积 s = PI x 半径的平方float l = 2 * PI * r; // 圆的周长 l = 2 * PI * r printf("圆的周长为:%.2f\n", l); // 指定小数点后保留2位, 对第3位做,4舍五入printf("圆的面积为:%.2f\n", s); // 指定小数点后保留2位return 0;
}
三、变量是什么?
变量:在程序运行中,值可以改变的量。
变量代表一个有名字的、具有特定属性的一个存储单元,可以用来存储数据,也就是变量的值。
变量必须先定义后使用。命名规则应符合标识符命名规则。
标识符命名规则
①只能由字母、数字、下划线组成,并且数字不能作为开头。(字母是区分大小写的)
#¥特殊字符不能作为标识符
②不允许是关键字,同一个作用域范围内定义的标识符不允许重名。
③工程实践中:通常常量使用大写、变量使用小写。大小写严格区分
变量的作用域
C语言中的变量,按照作用域的范围可分为两种, 即局部变量和全局变量。作用域是变量可以被访问的区间。
局部变量
局部变量也称为内部变量。局部变量是在一个函数内部或一个代码块中定义的变量,只能在被函数和代码块范围内有效。 离开该作用域后再使用这种变量是非法的。
void test()
{int b = 20; // b是一个局部变量,在test函数内有效
}int main()
{int a = 10; // a是一个局部变量,在main函数内有效test();//块作用域的可见范围是从定义处到包含该定义的块的末尾;块是用花括号“{}”括起来的代码区域,定义在块中的变量具有块作用域。{int c = 30; //c也是一个局部变量,在大括号内有效}
}
主函数main中定义的变量a也只能在主函数内有效,虽然主函数调用了test函数,但a并不在test函数内有效,主函数也不能使用test函数内定义的b变量。
允许在不同的函数中使用相同的变量名,它们代表不同的对象,分配不同的单元,互不干扰,也不会发生混淆。虽然允许在不同的函数中使用相同的变量名,但是为了使程序明了易懂,不提倡在不同的函数中使用相同的变量名。
形式参数也是局部变量。
在一个函数内部,用大括号括起来的一段代码块,叫做程序块。在程序块中定义的变量,也是只在本程序块中才有效的。离开本程序块,就无效,释放内存单元。
全局变量
全局变量也称为外部变量,它是在函数外部定义的变量。 它不属于哪一个函数,它属于一个源程序文件。其作用域是整个源程序。在函数中使用全局变量,一般应作全局变量说明。 只有在函数内经过说明的全局变量才能使用。全局变量的说明符为extern。 但在一个函数之前定义的全局变量,在该函数内使用可不再加以说明。
int test(int x, int y)
{int z;z = x > y? x : y;return z;
}int main()
{extern int a, b;printf("%d\n", test(a, b));
}int a = 10, b = 2;
static修饰的全局变量不能被其他文件所访问,只能限制于本文件中访问。成为静态外部变量。
四、c语言中常见的关键字
数据类型关键字
关键字 | 说明 |
---|---|
char | 声明字符变量 |
double | 声明双精度变量 |
float | 声明浮点型变量 |
int | 声明整型变量 |
short | 声明短整型变量 |
long | 声明长整型变量 |
unsigned | 声明无符号类型变量 |
signed | 声明有符号类型变量 |
struct | 声明结构体变量 |
union | 声明共用体或联合数据类型 |
void | 声明函数无返回值或无参数,声明无类型指针 |
enum | 声明枚举类型 |
控制语句关键字
关键字 | 说明 |
---|---|
for | 遍历循环 |
do | 其后紧跟循环体 |
while | 条件循环或死循环 |
break | 跳出当前循环 |
continue | 终止本次循环,开始下次循环 |
if | 条件语句 |
else | 条件语句否定分支 |
goto | 无条件跳转语句 |
switch | 用于多条件判断语句 |
case | 多条件判断语句分支 |
default | 开关语句的其它分支 |
return | 函数返回语句 |
存储类型关键字
关键字 | 说明 |
---|---|
auto | 声明自动变量 |
extern | 声明变量是在其他文件定义 |
register | 声明寄存器变量 |
static | 声明静态变量 |
其他关键字
关键字 | 说明 |
---|---|
const | 声明只读变量 |
sizeof | 计算数据类型长度(字节数) |
typedef | 给数据类型取别名 |
volatile | 所修饰的对象不能被编译器优化 |