单引号用来表示字符字面量(编译为对应的ASCLL码);------->'a'+1-----》表示a的ASCALL码加1-----》结果为b
双引号用来表示字符串字面量(被编译为对应的内存地址);--------->"a"+1表示指针运算-------》结果指向"a"结束符'\0'
printf的第一个参数当做字符串内存地址---------》printf('\n')-----printf("\n");
内存的低地址空间不能再程序中随意访问
例:char c="string";
发生了什么?
分析:编译后的字符串"string"的内存地址被赋值给变量c
内存地址占用了四个字节,二变量c只占用了一个字节,由于类型的不同,赋值后产生截断
小结:
单引号括起来的单个字符代表整数
双引号括起来的字符代表字符指针
C编译器接受字符和字符串的比较,无任何意义
C编译器允许字符串对字符变量赋值,只能得到错误