一.关键字(c中常见的有32个)
注意:我们在创建标识符的时候不能和关键字相同。
标识符:即在创建变量,数组,函数时它们的名字(这是我理解的)。
注意:标识符创建只能由数字,字母,下划线(_)组成,且不能以数字开头。
二.ASCII码表(128个)
记忆:1.字母A~z的值为65~90,字母a~z的值为97~122。
2.大小写字母间相差32。如:A为65,a为97。
3.数字0~9的值为48~57。
用途:我们可以用ASCII码值来表示字符。
三.字符
概念:用''括起来的。如'a' '#' '7'等。
这里还要提一下,转义字符也是一种字符。
转义字符: \? \' \" \\ \n \b \t \a \f \r \v
这里还有两种特殊转义字符:
\ddd d表示1~3个八进制数,如:\123 表示字符S
\xdd d表示2个十六进制数,如: \x12 表示字符V
三.字符串
概念:用“”括起来的就是字符串。如"abcd" "1234"等
要点:字符串后面隐藏放着一个\0,\0是字符串结束的标志。
我们可以用strlen来计算字符串个数,求的是\0之前的。
为什么不是两个字符数组都打印abcd?
数组arr1中存放了5个元素,是'a','b','c','d','\0'
数组arr2中只存放了4个元素,是'a','b','c','d'
打印arr1的时候遇到了\0 于是停止打印,而打印arr2的时在a,b,c,d后没有\0,于是就一直打印,直到遇到\0为止,原先内存里存放有\0
四.数据类型
1.字符型
char
2.整型
int,short int(可缩小为short),long int(long),long long int(long long)
3.浮点型
float,double,long double
这里提一下,如果要创建float类型的变量并给它赋值,需在数字后面加一个f,否则编译器会默认它为double类型,如:float a = 3.14f;
4.布尔类型(判断真假,需包含头文件stdbool.h)
创建方法: bool 名字 = true/false;
----signed和unsigned只能修饰整型和字符型
无符号类型比有符合类型的范围大一倍,如:signed char 为-128~127 unsigned char 为0~255
打印unsigned int 用%u
打印unsigned long 用%lu
打印unsigned long long 用%llu
五.sizeof
作用:计算数据类型占用多少字节,1字节为8比特位
char | int | short | long | long long | float | double | long double |
1 | 4 | 2 | 4 | 8 | 4 | 8 | 8 |
long的字节数 >= int的字节数 long double的字节数 >= double的字节数
sizeof的返回值要用%zd打印,不能用%d
用法:
sizeof(类型)
sizeof(表达式) ---这里表达式不执行运算
如图:a = b + 1 这里没有执行,所以a的值还是2
4又是如何来的呢?
b + 1 即整型+整型 结果还是整型,又把整型赋值给整型a,因此sizeof计算的是整型所占的字节数
-----第一次写这种类型的,希望多多支持一下