目录
前言
这是接上篇文章的后续依旧是我对C语言的一些浅显认知。
一、变量和常量
这是上篇文章漏掉的一些知识点。
变量在内存中是有一片区域的,当你声明了一个变量之后,计算机会在内存中为变量开拓一片存储区域,而常量就是放在这片区域中。申请区域的大小与变量的类型有关。
变量是用来描绘变化的数据。
常量则用来描述不会变化的数据。
C语言中的常量可以分为以下几种
1.字面常量
2. const修饰的常变量
3. #define 定义的标识符常量
4. 枚举常量
5.字符串常量
字面常量
如图 100 'c' "abcdef" 3.14 就是字面上的常量
const修饰的常变量
这里的n具有常属性
图中的错误是20也是个常量, 这里的n具有常属性,也就是此时的n可以看作常量,常量不可以对常量赋值。但下面的情况在某些标准下是可行的
上面说到,这里的n具有常属性,那么这个n能否放在数组的括号内呢?答案是只有在C99标准才可以,C99标准中增加一个变长数组的概念,这里指定数组大小的时候,可以使用变量了。但是要注意的一点是,这里的n本质上依旧是个变量。
#define 定义的标识符常量
图中的错误是MAX也是个常量,常量不可以对常量赋值。跟上面那个n一样的情况。
枚举常量
枚举就是一一列举
枚举是C语言提供的一种自定义类型的方法
枚举关键字enum
比如:性别:男,女,保密
三原色:red green blue
依据跟上面的错误一样,常量不可以对常量赋值。顺便提一下,c当中默认枚举常量的是0,1,2,3有几个就依次向下排下去。
字符串常量
为什么给两个字符数组赋值的是一样的,第二个却有烫烫烫烫烫abcdef呢?原来字符串常量结尾会有一个'\0'字符。不信你看
我们调试一下,可以看到字符串常量"abcdef"中最后有一个'\0'字符,关于调试技巧我会在后续的文章中说明。
而我们在看第二个数组
这个数组的结束就没有 '\0' 字符,之所以它会有后面那些烫之类的字,是因为字符串常量会以'\0' 字符作为结束字符,如果没有,那么它就会一直读下去 如下图
二 、转义字符
转义字符——就是转变它的意思
请你猜一下为什么会这样,是不是跟你想的不同?为什么不是 c:\test\test.c 呢?因为这里面有转义字符的存在。
这是一些常见的转义字符,如果c:\test\test.c 改成c:\\test\\test.c,我们再来看一下结果。
‘\n’是换行符,这个我相信大家都有所了解。
接下来我要谈谈我上面图片的最后两个转义字符
![](https://img-blog.csdnimg.cn/fcfdaae1f2944da18e9771b123a47b9b.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5bCP56qB56qB56qB,size_20,color_FFFFFF,t_70,g_se,x_16)
这里算出来的是数字 但是我们用字符的形式输出,所以就成了 ] B,这里就要提到ASCII表了,上图。
我们看到93和66就是对应这的 ] B。
还有一些字符大家感兴趣的可以尝试尝试,都是在我上面发的图片中。
接下来我们来联系一下上面的知识
上面的strlen是一个函数,后续会说到,它包含在<string.h>这个头文件中,你可以猜猜打印出来的值是多少,揭晓答案!
原来字符串常量的结尾不能算做是字符串的长度,而下方的 "c:\test\628\test.c" \t \62 各算作一个字符,剩下的依着数就可以得出答案了。
而有些人担心这样的赋值方式 { 'a', 'b', 'c', 'd', 'e', 'f','\0' },‘\0’是不是算作一个长度,答案很明显不能算作。
三、选择语句
四、循环语句
![](https://img-blog.csdnimg.cn/d1c0602d51fd4f25adcb96e32a71d6ac.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5bCP56qB56qB56qB,size_20,color_FFFFFF,t_70,g_se,x_16)
五、函数
函数就像是一个加工厂,把你给的原材料加工厂好的产品。我们在工程中,主要是函数有包装性,如果你所要做的操作写了很长的一段代码,那么多次用到这个操作的时候,你还把那么多代码打一遍吗?不需要,直接使用函数就ok啦!
六、数组
数组 - 一组相同类型元素的集合
int arr[10] = {10,11,12,13,14,15,16,17,18,19};
循环输入输出数组中元素的值。
七、各种操作符与表达式
简单说明为主,后续会不断更新详细讲解。
总结
以上就是今天要讲的内容,希望对你能有所帮助,欢迎各位大佬积极指正错误。下一期就可以把这个系列出完了,敬请期待。