1.常量
常量一共有四种,分别是字面常量,const 定义的常变量,define定义的标识常量和枚举常量。
字面常量
字面常量就是字面上的常量,如1,2,3,4,"ahsbb"'a',这些都是字面常量。
const定义的常变量
如const int a=3,这就是定义了一个常变量,但是需要注意的是const只是使它变得不能更改,而它的本质还是变量。如(const int a=3;char arr[a]={1,2,3})理论上来讲这个代码是可以成功运行的,但是还是运行不了,因为a的本质还是变量,而数组中括号里要为常量,所以无法运行。
define定义的标识常量
像这样就是定义了一个标识常量,而这里可以成功运行说明define定义的就是常量。
枚举常量
像这样就是枚举常量,而程序输出的结果就是0,因为我没有对male赋初值,所以是从0开始的。所以枚举常量的关键字就是enum。
2.字符串
字符串用字符一个一个输出和直接字符串输出有什么区别
像第一个(arr1)就是字符串输出,结果与预想一致,但是第二种就出现了偏差。为什么呢?
首先我先说明一下%s的输出规则:一直输出直到遇上'\0'才输出结束。
而第一个字符串输入到字符数组(arr1)中时,在'd'的后面自动输入了一个'\0',所以正常输出。
第二个的话(arr2)直接输入'a','b','c','d'儿没有输入'\0'所以出现了乱码。
同理,库函数strlen同样也是遇到'\0'结束,但值得注意的是strlen不把'\0'算到长度里面,而且如果要使用并没有警告的话就要在前面加一个头文件#include <string.h>。最后,strlen只能计算字符串长度,和sizeof是不一样的。
3.转义字符
最后两个是相对重要也是相对难一点的,比如以下代码答案是多少
答案是14。
因为'\t'表示的是一个字符(水平制表符),'\62'表示的是二位八进制数的ascii(对应49),因为\628已经超过了ascii的最大值,所以只取了\62,也就是1。所以运行结果是14。
对上面最后两个转义字符进行说明:\ddd它不是一定要三个八进制数,一个八进制数也可以。
同理,\xdd也是一样得到,同样不是一定要三个十六进制的数,一个也是可以的。
4.选择语句,循环语句,函数和数组的认识
就是简单地了解了一下,没有进行深究,所以这里就不做过多的阐述。
5.单目运算符和双目运算符
通俗的讲单目运算符就是左右两边运算的变量只有一个,如"++","--"之类的。双目运算符就是左右两边运算的变量有两个,如"+","-"等等,同样也没有进行深究,所以这里只是简单的说明一下。