c语言几种常量表示模式和字符串

简介: c语言几种常量表示模式和字符串

一 四种常量的表示方式


1 字面常量  类似下图中 3.14  'a'  "abc"就是一种字面常量

3cf70af1f4744dc59732d39ec129604c.png


2const修饰的常变量


我们首先声明一个变量a初始值为10 之后将20赋值给a 可以发现程序是可以正常运行的

93b5db03f3824933ac0e156f1c162d81.png


接下来尝试下用const修饰变量a 这时候我们发现a的值不能变化了 那么这个时候就可以说a具有了常属性

faa7210ce6d14253b91ef34708e180a6.png


那么具有了常属性的a究竟是不是一个常量呢?


我们可以自己动手做以下实验:


我们都知道数组arr []的[]内的值是只能又常量或者常量表达式来表示的


假设a是一个常量的话 按照理论来说程序是不会报错的


3 enum枚举常量;


举个栗子


 

enum sex
    { Male,
      Female,
      secret
    };

这就是enum枚举的三个简单的常量


那么要如何证明这三个十个常量呢


a7af17f8a51746e29f7a8d936204f51c.png


我们可以发现枚举的值是一个数字 那么接下来就很简单了


我们可以尝试下这个值能不能被改变 如果能它就是变量 如果不能就是常量

810e92989a1642ccaf5316aacc878af3.png

由上图可知 Male不能被修改是个常量


4 #define修饰的标识符常量


我们如何用#define来定义一个常量呢

caefca4083344599902b4f3b904d0610.png


我们说可以用以上的方式来用#define来定义一个Max常量


证明的方式和以上方式相同 大家可以自己动手尝试一下证明Max是不是一个常量


二 几种打印模式


对于不同类型的数据又不同的打印模式 这里简单提一下


%d 有符号类型的整数


%u 无符号理性的整数


%s 打印字符串


%c 打印字符


三 字符串


基础知识


1 字符串的结束标志是什么? 它算是字符串的内容嘛?


字符串的结束标志是’\0‘  它不算是字符串的内容


围绕字符串结束标志的几个简单问题


cc4640d96cb2440eba8e9c9839832fd7.png


  (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


所以说如果在上面的形式中超过这两个数字就不是完整的八进制和十六进制的转义字符了


相关文章
|
15天前
|
NoSQL 程序员 Redis
C语言字符串的设计缺陷
C语言字符串的设计缺陷
21 1
|
9天前
|
C语言
C语言学习笔记之初识字符串
C语言学习笔记之初识字符串
20 5
|
7天前
|
程序员 C语言
C语言中的宏定义:从常量到高级技巧
C语言中的宏定义:从常量到高级技巧
9 1
|
9天前
|
C语言
c语言左旋字符串问题(不同方法超详细解答)
c语言左旋字符串问题(不同方法超详细解答)
8 1
|
1天前
|
移动开发 C语言
C语言13-----输出常量的两个小扩展
C语言13-----输出常量的两个小扩展
|
1天前
|
C语言
|
1天前
|
C语言
C语言11-----实型常量细节补充
C语言11-----实型常量细节补充
|
1天前
|
C语言
C语言10-----常量的介绍
C语言10-----常量的介绍
|
28天前
|
安全 编译器 C语言
C语言学习记录——字符串相关函数及部分模拟(strcmp、strncmp、strncat、strncpy、strstr、strtok、strerror)
C语言学习记录——字符串相关函数及部分模拟(strcmp、strncmp、strncat、strncpy、strstr、strtok、strerror)
15 1
|
28天前
|
C语言
C语言学习记录——模拟字符串相关函数(strcpy、strlen、strcat)相关知识-const、typedef
C语言学习记录——模拟字符串相关函数(strcpy、strlen、strcat)相关知识-const、typedef
15 1