C语言中的字符串+转义字符+注释

写在前面:

今天我们要学习的是C语言中的字符串以及转义字符,下面我们一起来对这方面的知识结合代码进行探究.

一.字符串

什么是字符串呢?

"hello bit" 形如这样使用双引号引起来的一串字符就称之为字符串字面值,简称为字符串.

需要注意的是: 字符串的结束标志是一个\0的转义字符.在计算字符串长度的时候\0是结束标志,不算作字符串内容.

这里就很有必要提到字符数组:

 数组就是用来存放一组相同类型的元素,而字符数组就是存放若干字符的数组.

形如 char arr[] = "hello"; 这样就可以称之为字符数组

 从字面意义来看的话,该数组中保存了hello5个字符.但是通过调试发现该数组中有6个字符,包含一个隐含的\0. 这里\0的作用是用来表示字符串的结尾.

形如 char arr[] = {'h','e','l','l','o'};这样的同样也称之为字符数组,两种形式到底有什么区别呢?

 可以使用下面的代码进行一下测试:

 解析:

 由此可以得知,第一种形式字符串会包含隐含的\0也会占据一个字节,而第二种形式则不会包含.

 为什么第一种形式计算的值是5,而第二种形式的值却是21呢?为何反差如此之大呢?

解析:strlen函数遇到\0则会停止计算,第一种形式有隐含的\0.而第二种则没有,因此第二种形式会一直向后遍历,直到遇到\0才会停止.而此时后面内存中的值是不确定的,因此最后计算的值也是随机值.

二.转义字符

像平时我们使用电脑存储文件的时候,每个文件都有对应的存储路径.而如果我们需要将路径打印出来的时候,比如:C:\code\test.c 这样一个目录,我们又该如何去写代码呢?

#include <stdio.h>

int main() {
	printf("C:\code\test.c\n");
	return 0;
}

这样写对吗?下面试一试就便知 

 很显然从上面的结果可以得知是错误的.

因此这里就不得不说一说转移字符了,转义字符顾名思义就是转变意思.

常见的转义字符:

转义字符释义
\?在书写连续多个问号时使用,防止被解析成三字母词
\'用于表示字符常量'
\"用于表示一个字符串内部的双引号
\\用于表示一个反斜杠,防止被解释为一个转义序列符
\a警告字符,蜂鸣
\b退格符
\f进纸符
\n换行
\r回车
\t水平制表符
\v垂直制表符
\dddddd表示1~3个八进制的数字.如:\130
\xdddddd表示3个十六进制数字.如\x030

 问题1:在屏幕上打印一个单引号',应该怎么写呢?

#include <stdio.h>

int main(){
    prinntf("%c\n",'\'');
    return 0;
}

 问题2:在屏幕上打印一个字符串,字符串的内容是一个双引号",应该怎么做呢?

#include <stdio.h>

int main() {
	printf("%s\n","\"");
	return 0;
}

笔试常见题:

我们要先说一说strlen函数:

strlen函数的作用是用来求字符串中字符个数,遇到\0则停止计算.

 第2个printf语句深度剖析:

 \t会被转义为水平制表符,\69会被转义为6所对应的字符和数字9,因为数字9并不能表示9进制.6则会按照8进制转换为10进制对应的字符.

三.注释

我们平时在学习的过程中肯定会去写很多的代码,在测试的过程中有些代码可以反复使用,但是有些代码在不需要的时候则需要删除,但是删除的话又比较可惜(毕竟是自己辛辛苦苦一个字符一个字符敲出来的).因此,代码中有不需要的代码我们可以先注释掉,或者代码中有些代码比较难懂,我们也可以加文字注释起来,而同时不影响代码的编译运行,而又美观.

对代码进行适当的解析,使代码更加简明扼要.

#include <stdio.h>
//两数求和函数
int add(int a, int b) {
	return a + b; //返回两数之和
}

int main() {
	int a = 3, b = 4; //定义两个变量
	int ret = add(a, b); //调用求和函数,获取返回值
	printf("ret = %d\n", ret); //输出求和函数的返回值
	return 0;
}

注释掉代码的两种风格:

  • C语言风格的注释: /* xxxxx */    缺陷:不能嵌套注释
  • C++风格的注释: // xxxxxx         优点:可以注释一行,也可以注释多行

VS编译器中注释代码的快捷键:

注释掉代码: 选中需要注释掉的代码,然后 ctrl+k+c    

放开注释掉的代码: 选中需要放开的代码,然后 ctrl+k+u

 

今天用到了sizeof以及strlen两个函数,而这两个函数很容易混用,所以下一篇博客会特别拿出来讲一下这两个函数的区别.

锲而不舍,朽木可折. -------- 荀子<<劝学>>

评论 2 您还未登录,请先 登录 后发表或查看评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:深蓝海洋 设计师:CSDN官方博客 返回首页

打赏作者

踢球的程序猿

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

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

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

打赏作者

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

抵扣说明:

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

余额充值