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

本文详细介绍了C语言中的四种常量表示方法,包括字面常量、const修饰的常变量、enum枚举常量及#define修饰的标识符常量,并探讨了几种打印模式的应用。此外,还深入解析了字符串的基础知识及其结束标志,以及转义字符的使用技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一 四种常量的表示方式 

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

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

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学习同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值