程序地带

C语言提高第二天(常量、字符串、ASCCII码、转义字符、C语言结构)


 

 


知识点概括

1、常量


(1)字面常量,直接写出来的数字,例如3、100;


(2)const修饰的常变量,


const float pai = 3.14; //变量pai的值恒定为3.14,不可修改,为常变量

(3)#define修饰的标识符常量,


#define MAXSIZE 10 //MAXSIZE的值为10,完全等同于字面常量

(4)枚举常量,能够被一一列举出来的常量值,如性别:男、女,三原色:红、黄、蓝。枚举关键字(enum),枚举常量代码如下:


enum sex //性别的枚举常量
{
male, //男
female //女
};
enum color //三原色的枚举常量
{
red, //红
yellow, //黄
blue //蓝
};
enum sex s = male; //定义一个变量s,值为0
enum color c = yellow; //定义一个变量c,值为1
printf("%d ", s); //0
printf("%d ", c); //1
s = female; //变量s的值是可以改变的,c同理,但是枚举常量的值是不能改的,如我们不能把male改成5
printf("%d ", s); //1
//枚举体内的值默认从0、1、2依次往下排列

注:因楼主此前从未使用过枚举常量,故此处描述可能有误,待后续学习后修正。


2、字符串,“ ”内容,字符数组储存字符串时,“ ”赋值与{ }存在细微差异,代码如下:


char arr_1[] = "abc"; //此时字符串abc正确的放入数组arr_1
char arr_2[] = { 'a','b','c' }; //此时字符串已放入数组arr_2,但输出会乱码
printf("%s ", arr_1);
printf("%s ", arr_2);


此时的输出结果如图所示,造成此现象的原因其实是arr_1的赋值过程中,编译器自动加了了'‘表明字符串的结束,而arr_2的赋值过程中没有该过程,所以我们要手动加上''。



此时字符串正常显示。


3、ASCII码



4、转义字符,一个转义字符的长度为1,不为2或其他值。



转义字符几个细节:


(1)\反斜杠,当我们需要输出打印的字符串中包含’‘时,直接打印会使编译器将我们要打印的字符串误以为是转义字符,故为实现我们的目的,应使用\反斜杠,代码如下:


printf("%s ", "C: est est.c"); //我希望打印得到C: est est.c的字符串

但得到的结果是:



结果与预期不符,原因是编译器将字符串中的 认为是转义字符,查表得知该字符为水平制表符,故得到的结果中出现了两段缩进,此时我们修改代码如下:


printf("%s ", "C:\test\test.c"); //使用反斜杠字符

此时得到预期的结果:



(2)ddd(八进制转义字符)与xhh(十六进制转义字符),(合法的八进制与十六进制转义字符的长度都为1)代码如下:


printf("%d ", strlen("23")); //查看字符串23的长度,输出结果为1,由此可知合法的八进制与十六进制转义字符无论写的多长,长度都为1
printf("%c ", '23'); //打印的是八进制数23(十进制数19)所对应的ASCII码字符,即!!

5、C语言结构


(1)顺序结构


(2)分支结构


(3)循环结构


版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/lxssg1231/article/details/112689278

随机推荐