关键字
被C语言赋予了特殊含义的单词
共有32个
数据类型20个
流程控制12个
全部是小写
标识符
标识符是程序员在自己的程序中定义的名称
标识符只能由数字、字母、下划线组成,不能以数字开头
不能跟关键字同名
命名规范:
起一个有意义名字,能够提高代码的可读性
驼峰命名(除开第一个单词后面每个单词首字母大写)
严格区分大小写,大小写不同表示不同的标识符
例如:gaolei跟Gaolei是两个不同的标识符
注释
注释可以解释某一段程序或者某一段代码是什么意思,方便程序员之间交流可以是任何文字
注释可分为单行注释、多行注释
单行注释为:// 表示从第二个/开始直到那一行结束的都为注释
【快捷键:command+/ 】
【 如果在单行注释末加 \ 则表示下一行也为注释】
多行注释 表示从 /* 开始一直到遇到第一个 */ 结束
注释使用注意
单行注释里可以套用多行注释
多行注释里可以套用单行注释
多行注释里不可以套用多行注释
常量
常量是表示一些固定的数据,也就是不能改变的数据
常量的分类
整型常量
整型:用于准确地表示整数,根据表示范围的不同分为以下三种:
短整型(short) < 整型(int) < 长整型(long)
【整型常量可以用三种样子:
十进制整数。如356,-120,0。
八进制整数。八进制形式的常量都以0开头,如0123,也就是十进制的83;-011,也就是十进 制的-9。
十六进制整数。十六进制的常量都是以0x开头,如0x123,就是十进制的291。
二进制整数。逢二进一 0b开头】
实型常量
单精度浮点数(float) 以f结尾
双精度浮点数(double)十进制小数形式。这个我们应该很熟悉了,小学就学了的,不过注意:0.0也是实型 常量。
注意:float只能够保证7位数字是有效的!!!
字符常量
字符型常量都是用”(单引号)括起来的,其表现形式可以有两种:
一般形式。一个字符用”括起来,注意只能有一个字符。
特殊形式。特殊形式都是以\开头,它们在屏幕上不会直接显示出来,而是根据其特定的功能来 显示的,这些特殊字符常量有:
\n 换行,相当于敲一下回车。
\t 跳到下一个tab位置,相当于按一下键盘上的tab键。 \b 退格,相当于按一下backspace。
\r 回车。
\f 换页,光标移到到下页开头。
\ 输出\字符,也就是在屏幕上显示一个\字符。
\’ 输出’字符,也就是在屏幕上显示一个’字符。
\” 输出”字符,也就是在屏幕上显示一个”字符。
\ddd 1位到3位八进制数表示的字符。
例如:使用’\376’,则在屏幕上显示一个黑色的方块。 \xhh 1位到2位十六进制数表示的字符。注意x不能丢了
字串符常量
将一个或者多个字符用双引号括起来就构成一个字串符常量
自定义常量
格式: const 数据类型 常量名称 = 值
例如: const int NUM = 998;
常见的数据类型有:int、float、double、char
整型:用于准确地表示整数,根据表示范围的不同分为以下三种:
- 短整型(short) < 整型(int) < 长整型(long)
实型(浮点型):用于标识实数(小数)根据范围和精度不同分为以下两种:
- 单精度浮点数(float) < 双精度浮点数(double)
- 注意:float只能够保证7位数字是有效的!!!
- 字符型:用来表述单个字符,char
- 字符型常量都是用”(单引号)括起来的,其表现形式可以有两种:
- 一般形式。一个字符用”括起来,注意只能有一个字符。
- 其特定的功能来 显示的,这些特殊字符常量
- “`
\n 换行,相当于敲一下回车。
\t 跳到下一个tab位置,相当于按一下键盘上的tab键。 \b 退格,相当于按一下backspace。
\r 回车。
\f 换页,光标移到到下页开头。
\ 输出\字符,也就是在屏幕上显示一个\字符。
\’ 输出’字符,也就是在屏幕上显示一个’字符。
\” 输出”字符,也就是在屏幕上显示一个”字符。
\ddd 1位到3位八进制数表示的字符。
例如:使用’\376’,则在屏幕上显示一个黑色的方块。 \xhh 1位到2位十六进制数表示的字符。注意x不能丢了
变量
- 表示的数据是可以经常修改的。当一个数据的值需要经常改变或者不确定时,就应该用变量来表示。
- 例如:游戏积分
如何定义变量
定义变量(声明), 任何变量在使用之前,必须先进行定义。
定义变量的目:在内存中分配一块存储空间给变量,方便以后存储数据。
如果定义了多个变量,就会为这多个变量分别分配不同的存储空间。
格式1: 变量类型 变量名称
int a;
float b;
char ch;
格式2:变量类型 变量名称,变量名称
+ 连续定义, 多个变量之间用逗号(,)号隔开
int a,b;
int a,b,c,d;
不同类型的变量占用不同大小的存储空间。内存极其有限,分配适当的存储空间
变量明的命名的规范
- 变量名属于标识符,所以必须严格遵守标识符的命名原则
- 变量名要尽可能的望文知意、简洁
变量的初始化
- 变量第一次赋值,可以称为“初始化”
- 初始化的两种形式
- 先定义,后初始化
int value;
value = 998; 初始化
+ 定义的同时进行初始化
int a = 10; 完全初始化
int a, b=10; 部分初始化
int a=4, b=2;
+ 其它表现形式
* 批量初始化
```
int a,b,c;
a = b =c =0;
int a; 不初始化不会报错,a里面存的内容:
1)随机数
2)上次程序分配的存储空间,存数一些 内容,“垃圾”
3)系统正在用的一些数据
- 连续赋值
int a,b,c;
a = b =c =0;
1.变量的作用域
C语言中所有变量都有自己的作用域,申明变量的类型不同,其作用域也不同。C语言中的变量,按照作用域的范围可分为两种, 即局部变量和全局变量。
2.局部变量
局部变量也称为内部变量。局部变量是在函数内作定义说明的。其作用域仅限于函数内(代码块), 离开该 函数后再使用这种变量是非法的
主函数中定义的变量也只能在主函数中使用,不能在其它函数中使用。同时主函数中也不能使用其它函数中定义的变量。因为主函数也是一个函数,它与其它函数是平行关系。
形参变量是属于被调函数的局部变量,实参变量是属于主调函数的局部变量。
3.全局变量
- 全局变量也称为外部变量,它是在函数外部定义的变量。
2.变量的存储
- 一个变量所占用的存储空间,不仅跟变量类型有关,而且还跟编译器环境有关系。同一种类型的变量,在不同编译器环境下所占用的存储空间又是不一样的
- 所占用字节数跟类型有关,也跟编译器环境有关
- 内存由大到小寻址
- 变量存储单元的第一个字节的地址就是该变量的地址
- 任何变量在内存中都是以二进制的形式存储。一个负数的二进制形式,其实就是对它的正数的二进制形式进行取反后再+1。(取反的意思就是0变1、1变0)
类型 | 16位编译器 | 32位编译器 | 64位编译器 |
---|---|---|---|
char | 1 | 1 | 1 |
int | 2 | 4 | 4 |
float | 4 | 4 | 4 |
double | 8 | 8 | 8 |
short | 2 | 2 | 2 |
long | 4 | 4 | 8 |
long long | 8 | 8 | 8 |
void* | 2 | 4 | 8 |
3.取值范围
不同数据类型所占的存储空间是不一样的,字节长度不一样,包含的二进制位数就不一样,能表示的数据范围也就不一样
如果赋值的时候超出了变量的取值范围,那么将损失精度,得到“垃圾数据”(“垃圾数据”就是指并非我们想要的数据)
关键字 | 所占字节数 | 表示范围 |
---|---|---|
int | 4 | -2(31) ~ 2(31)-1 |
signed short int | 2 | -2(15) ~ 2(15)-1 |
signed long int | 4 | -2(31) ~ 2(31)-1 |
unsigned int | 4 | 0 ~ 2(32)-1 |
unsigned short int | 2 | 0 ~ 2(16)-1 |
unsigned long int | 4 | 0 ~ 2(32)-1 |
float | 4 | 绝对值E-37 ~ E+38 |
double | 8 | 绝对值E-307 ~ E+308 |