一 四种常量的表示方式
1 字面常量 类似下图中 3.14 'a' "abc"就是一种字面常量
2const修饰的常变量
我们首先声明一个变量a初始值为10 之后将20赋值给a 可以发现程序是可以正常运行的
接下来尝试下用const修饰变量a 这时候我们发现a的值不能变化了 那么这个时候就可以说a具有了常属性
那么具有了常属性的a究竟是不是一个常量呢?
我们可以自己动手做以下实验:
我们都知道数组arr []的[]内的值是只能又常量或者常量表达式来表示的
假设a是一个常量的话 按照理论来说程序是不会报错的
3 enum枚举常量;
举个栗子
enum sex { Male, Female, secret };
这就是enum枚举的三个简单的常量
那么要如何证明这三个十个常量呢
我们可以发现枚举的值是一个数字 那么接下来就很简单了
我们可以尝试下这个值能不能被改变 如果能它就是变量 如果不能就是常量
由上图可知 Male不能被修改是个常量
4 #define修饰的标识符常量
我们如何用#define来定义一个常量呢
我们说可以用以上的方式来用#define来定义一个Max常量
证明的方式和以上方式相同 大家可以自己动手尝试一下证明Max是不是一个常量
二 几种打印模式
对于不同类型的数据又不同的打印模式 这里简单提一下
%d 有符号类型的整数
%u 无符号理性的整数
%s 打印字符串
%c 打印字符
三 字符串
基础知识
1 字符串的结束标志是什么? 它算是字符串的内容嘛?
字符串的结束标志是’\0‘ 它不算是字符串的内容
围绕字符串结束标志的几个简单问题
(1)arr arr2 arr3的字符串长度分别是多少?
长度分别是 5 随机值 3
(2)如何使得arr和arr2的字符串长度相等?
只要在’5‘后面加一个结束标志就可以使得两个数组相同了
(3)'abc\0adnue3nfun'的字符串长度是多少?
长度是3 因为遇到结束标志就不统计长度了
四 转义字符
尝试在c语言编辑器下面打印下面两行代码看看又什么不同
printf("abcdef");
printf("abcd\nef");
几个简单的小问题
我们如何避免打印一个单引号的时候报错呢?
在 ‘ 前面加一个反斜杠
我们如何避免\n成为一个转义字符呢?
在\n的前面再加一个\
tips:我们知道再转义字符中有两种特殊的表示形式
\ddd是三个八进制表示的一个ascll码字符
\xdd是两个十六进制表示的一个ascll码字符
那么字符串 "\648" 和字符串'\xag"的字符串长度分别是多少呢?
正确答案是2
这里是一个易错点 因为八进制数字的最大位是8 十六进制的最大位是f
所以说如果在上面的形式中超过这两个数字就不是完整的八进制和十六进制的转义字符了