C语言的常见概念(2)

1. 转义字符

在字符中有⼀组特殊的字符是转义字符,转义字符顾名思义:转变原来的意思的字符

\n 是⼀个转义字符表⽰换⾏的意思,可以简单的理解为 \ n 的意思发⽣了转变, n 本来是⼀个普通的字符,被 \ 转义为换⾏的意思

语⾔中像这样的转义字符还有⼀些,具体如下:

\? :在书写连续多个问号时使⽤,防⽌他们被解析成三字⺟词,在新的编译器上没法验证了。

\' :⽤于表⽰字符常量'

\" :⽤于表⽰⼀个字符串内部的双引号

\\ :⽤于表⽰⼀个反斜杠,防⽌它被解释为⼀个转义序列符。

\a :警报,这会使得终端发出警报声或出现闪烁,或者两者同时发⽣。

\b :退格键,光标回退⼀个字符,但不删除字符。

\f :换⻚符,光标移到下⼀⻚。在现代系统上,这已经反映不出来了,⾏为改成类似于 \v

\n :换⾏符。

\r :回⻋符,光标移到同⼀⾏的开头。

\t :制表符,光标移到下⼀个⽔平制表位,通常是下⼀个4/8的倍数。

\v :垂直分隔符,光标移到下⼀个垂直制表位,通常是下⼀⾏的同⼀列。

下⾯2种转义字符可以理解为:字符的8进制或者16进制表⽰形式

\ddd :d d d表⽰1~3个⼋进制的数字。 如: \130 表⽰字符X

\xdd :d d表⽰2个⼗六进制数字。 如: \x30 表⽰字符0

\0 :null 字符,代表没有内容, \0 就是 \ddd 这类转义字符的⼀种,⽤于字符串的结束标志,其

ASCII码值是0

转义字符参考:https://zh.cppreference.com/w/c/language/escape

介绍一下三字母词:

示例:

#include <stdio.h>

int main()
{
	printf("%c\n", '\'');
	printf("%s\n", "\"");
	printf("c:\\test\\code\\test.c\n");
	printf("\a");
	printf("%c\n", '\130'); //130是8进制,转换成10进制是88,以88作为ASCII码值的字符是'X'
	printf("%c\n", '\x30'); //x30中的30是16进制,转换成10进制是48,以48作为ASCII码值的字符是'0'
	
	return 0;
}

运行结果:

在简单介绍一下getchar:

这个函数是用来在键盘上读取一个字符的(具体可以看官网介绍)

int main()
{
	printf("xxxx");

	getchar();//“函数”,这个函数是用来在键盘上读取一个字符的
	return 0;
}

程序运行到这个命令时就会暂停,等待用户从键盘输入,等同于scanf()的方法读取一个字符

可以用这个函数来观察\b和\r等的作用

观察\r的作用

再简单介绍一下strlen函数

strlen = string length --计算字符串的长度

功能:计算字符串的长度并返回

注意事项:

1.字符串以 '0'结束标志,strlen 函数返回值是 \0 前的字符个数(不包含 \0);

2.string函数返回值是 unsinged int 类型;

3.参数所指向的字符串必须是 \0 结尾;

4.头文件为 <string.h>

巩固练习:

#include <stdio.h>
#include <string.h>

int main()
{
	int len = strlen("c:\test\198\abc\test.c");
	printf("%d\n",len);

	return 0;
}

其运行结果为18,\198不是\ddd 因为9和8不是八进制数字,故’\t' '\1' '\a' '\t'均为一个字符。

如果将上面代码中的1换位0:

int main()
{
	int len = strlen("c:\test\098\abc\test.c");
	printf("%d\n",len);
	return 0;
}

那么运行结果为6,\0为结束标志。

2.语句和语句分类 

C语⾔的代码是由⼀条⼀条的语句构成的,C语⾔中的语句可为以下五类

空语句

表达式语句

函数调⽤语句

复合语句

控制语句

2.1空语句

空语句是最简单的,⼀个分号就是⼀条语句,是空语句。
int main()
{
	;//空语句
	return 0;
}

空语句,⼀般出现的地⽅是:这⾥需要⼀条语句,但是这个语句不需要做任何事,就可以写⼀个空语句。

2.2表达式语句

表达式语句就是在表达式的后边加上分号。如下所⽰:

int main()
{
	int a = 10;
	int b = 20;
	b = a + 5;//表达式语句
	return 0;
}

2.3函数调⽤语句

函数调⽤的时候,也会加上分号,就是函数调⽤语句。

#include <stdio.h>
int Add(int x, int y)
{
	return x + y;
}
int main()
{
	printf("hehe\n");//函数调⽤语句
	int ret = Add(2, 3);//函数调⽤语句
	return 0;
}

2.4复合语句

复合语句其实就是代码块,成对括号中的代码就构成⼀个代码块,也被称为复合语句。

void print(int arr[], int sz) //函数的⼤括号中的代码也构成复合语句
{
	int i = 0;
	for (i = 0; i < sz; i++)
	{
		printf("%d ", arr[i]);
	}
}
int main()
{
	int i = 0;
	int arr[10] = { 0 };
	for (i = 0; i < 10; i++) //for循环的循环体的⼤括号中的就是复合语句
	{
		arr[i] = 10 - i;
		printf("%d\n", arr[i]);
	}
	return 0;
}

以上四种了解就行

2.5控制语句

控制语句⽤于控制程序的执⾏流程,以实现程序的各种结构⽅式(C语⾔⽀持三种结构:顺序结构、选择结构、循环结构),它们由特定的语句定义符组成,C语⾔有九种控制语句。

可分成以下三类:

1. 条件判断语句也叫分⽀语句:if语句、switch语句;

2. 循环执⾏语句:do while语句、while语句、for语句;

3. 转向语句:break语句、goto语句、continue语句、return语句。

后面会介绍控制语句。

3.注释是什么?为什么写注释?

注释是对代码的说明,编译器会忽略注释,也就是说,注释对实际代码没有影响。 注释是给程序员⾃⼰,或者其他程序员看的。 好的注释可以帮我们更好的理解代码,但是也不要过度注释,不要写没必要的注释。 当然不写注释可能会让后期阅读代码的⼈抓狂。写注释⼀定程度上反应了程序作者的素质,建议⼤家写必要的注释,在未来找⼯作的时候,写代码时留下必要的注释也会给⾯试官留下更好的印象。

3.1注释的2种形式

C 语⾔的注释有两种表⽰⽅法。

3.1.1  /**/ 的形式

可以注释一行也可以注释多行

/* 注释 */
/*
这是⼀⾏注释
*/

这种注释可以插在⾏内。

int fopen(char* s /* file name */, int mode);

/**/ 的这个注释也不⽀持嵌套注释, /* 开始注释后,遇到第⼀个 */ 就认为注释结束了。

/*int main()
{
	printf("hehe\n");/*调用printf函数,打印hehe在屏幕上*/
	return 0;
}*/

// 的形式

第⼆种写法是将注释放在双斜杠 // 后⾯,从双斜杠到⾏尾都属于注释。这种注释只能是单⾏,可以放在⾏⾸,也可以放在⼀⾏语句的结尾。这是 C99 标准新增的语法。

// 这是⼀⾏注释
int x = 1; // 这也是注释

不管是哪⼀种注释,都不能放在双引号⾥⾯

双引号⾥⾯的注释符号,会成为字符串的⼀部分,解释为普通符号,失去注释作⽤。

printf("// hello /* world */ ");

注释快捷键:CTRL + / 有时候不行,不能有空行,一般用ctrl +k ,ctrl + c

3.2注释会被替换

编译时,注释会被替换成⼀个空格,所以 min/* 这⾥是注释*/Value 会变成 min Value ,⽽不 是 minValue

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值