C语言中,单引号包含的是字符,双引号包含的叫字符串
1. 变量
变量命名:组成:数字0-9,字母a-z,A-Z,_,不以数字开头,避讳,区分大小写
- 本地变量是定义在块内的
- 它可以是定义在函数的块内
- 也可以定义在语句的块内
- 甚至可以随便拉一对大括号来定义变量
- 程序运行进入这个块之前,其中的变量不存在,离开块,变量就会消失了
- 块外面定义的变量在里面仍然有效
- 块里面定义了和外面同名的变量则掩盖外面的
- 不能在一个块内定义同名的变量
- 本地变量不会被默认初始化
- 参数在进入函数的时候就被初始化
2. 常量
定义符号常量:
格式:#define 标识符 常量 => 宏定义,意思是将define后面的所有的标识符替换为常量
有#开头的都叫预处理命令,都放在文件的开头位置
转义字符:\a警报、\b退格、\f换页、\n换行、\r回车、\t水平制表符、\v垂直制表符
字符串常量"x"和字符常量’x’不同。区别之一在于’x’是基本类型 (char),而"x"是派生类型(char数组);区别之二是"x"实际上由两个字符 组成:'x’和空字符\0
sizeof:对于类型,应写成sizeof(char)或sizeof(float);对于特定量,可写成sizeof name或sizeof 6.28。尽管如此,还是建议所有情况下都使用圆括号,如sizeof(6.28),char还可以用strlen()
3. 数据类型
整数类型int(short int、int、long int、long long int)、浮点数类型float、double、字符类型char、布尔类型_Bool、枚举类型enum
sizeof运算符用于获得数据类型或者表达式的长度
类型限定符:signed(带符号位的-可以存放负数)和unsigned(不带符号位的-存放正数和0)用于限定char类型或者任何整形变量的取值范围
非必要不要使用long,会变慢
自动类型转换:short会自动转为int
4. 取值范围
比特位bit字节byte
1byte = 8bit,一个字节存放的最大的数就是8个1,
二进制:11111111,十进制:255,十六进制:FF
二进制 => 十进制,规律:2的n次方减1
符号位:int默认为signed,左边第一位表示为符号位,如果该位为0,表示是正数,为1,表示是负数
5. 数组
定义数组:数组名[常量表达式],引用数组元素:数组名[下标]
int a[10] = {1, 2, 3, 4, 5} 后面的值是0
数组的长度:sizeof给出整个数组所占据的内容大小,单位是字节,sizeof(a) / sizeof(a[0]),sizeof(a[0])给出数组中单个元素的大小
数组的赋值:
int a[] = {1,2,3,4,5}
int.b[] = a // 不可以
- 数组变量本身不能被赋值
- 要把一个数组的所有元素交给另一个数组,必须采用遍历
运算符&:获得变量的地址,他的操作数必须是变量
printf()和scanf()
如果用scanf()读取基本变量类型的值,在变量名前加上一个&;如果用scanf()把字符串读入字符数组中,不要使用&。