字符
如图所示,以字符形式定义a为'B',以字符形式(%c)打印a,结果为B
以字符形式定义b为97,以字符形式(%c)打印b,结果为a
这是为什么呢?
这里我们需要引入ASCII码表来解释
所以,我们需要知道的是——字符串的本质就是一个字符数组。
下面让我们看一下\0的作用:
这里arr1数组输出的结果显然是我们不想得到的。
这里我们需要引入strlen来解释,strlen也是一个库函数,当需要调用strlen函数时,需要引入#include<string.h>。
strlen函数的定义是:strlen所作的是一个计数器的工作,它从内存的某个位置(可以是字符串开头,中间某个位置,甚至是某个不确定的内存区域)开始扫描,直到碰到个字符串结束符'\0'为止,然后返回计数器值(长度不包含'\0')。
strlen函数的作用是:计算给定字符串的长度。
所以当我们用单引号赋值时,strlen检索到了a、b、c,但是没有检索到\0,会依然在内存中继续检索,直到遇到\0才停止检索并输出结果。
#include<stdio.h>
int main()
{
printf("D:\test\test");
return 0;
}
转义字符(Escape character),所有的ASCII码都可以用“\”加数字(一般是8进制数字)来表示。而C语言中定义了一些字母前加"\"来表示常见的那些不能显示的ASCII字符,如\0,\t,\n等,就称为转义字符,因为后面的字符,都不是它本来的ASCII字符意思了。
#include<stdio.h>
int main()
{
printf("%d\n", strlen("D:\test\321\test.c"));
return 0;
}
种:
/*这是一个经典注释,C89标准引入*/,这种类型的注释也叫做块注释。
第二种:
//这是一个单行注释,C99标准引入,这种类型的注释也叫做行注释。
注释原则
1.项目开发中,尽量保持代码注释规范和统一。
2.注释方便了代码的阅读和维护。
3.边写代码边注释,修改代码时要相应修改注释,保证注释和代码的一致性。
4.注释要简洁明确,不要出现形容词。
5.通过注释可以快速知道所写函数的功能,返回值,参数的使用。
笔者更推荐注释时使用第二种注释方法,因为种注释方法不能嵌套,/* 总是与近的一个 */ 匹配。
在C语言程序中一共有三种程序结构:顺序结构、选择结构(分支结构)、循环结构。
五、顺序结构
顺序结构是简单的程序结构,也是常用的程序结构,只要按照解决问题的顺序写出相应的语句即可,它的执行顺序是自上而下,依次执行。
我们之前所有的代码段均为顺序结构,这里不再赘述。
六、选择结构(分支结构)
在介绍选择结构之前,我们先简单了解一下scanf函数。
这里读者不必理解如何使用指针,只需要记住以下两条简单的规则:
如果你使用的是较新版本的Visual Studio(VS2019就有这个问题),scanf函数会被认为是不安全的,编译器会抛出C4996错误,并建议你使用别的安全函数(scanf_s)替代。
但是,笔者不建议引入scanf_s,在C语言中scanf_s不是C语言标准规定的,这个scanf_s只是VS编译提供的。因为这是VS特有的,其他的编译器并不支持这种格式,所以并不适合进行代码迁移。
请将#define _CRT_SECURE_NO_WARNINGS 1加入预定义字符串,屏蔽不安全函数错误。
这也是为什么笔者之前的每一次代码截图都是从第二行开始的。
但是每一次写代码都需要加入这段预定义字符串,非常麻烦,一劳永逸的办法如下:
首先找到VS安装文件,找到newc++file.cpp文件。因为版本不同,安装路径不同等等,newc++file.cpp文件位置不一样。所以我就不具体细说了。
下面我们言归正传,开始简单地介绍选择结构:
示例(if-else):
解释:用户自行输入a的值,如果a大于等于1,则输出"做";反之a小于1,则输出"不做"。
示例(if嵌套):
解释:用户自行输入a的值,如果a在60~100区间内,则继续进行判断,输出对应的结果,如果不在60~100区间,则跳到else直接输出。
在这里补充一点:C语言中规定,1为真(TRUE),0为假(FALSE)。
示例:
七、循环结构
循环三要素:
循环初始操作
循环条件
循环体
循环结构的三种基本结构:
while语句
for语句
do...while语句
这里我们先简单了解一下while语句,详细的讲解会放在下一章内容
表达式1;
while(表达式2)
{
语句;
表达式3;
}
注:在进入循环之前,一定要对变量(i)进行赋值(初始化)。
示例:
解释:
注:while(1)是一个死循环。
责编:霖海岛LHaisland
审核:霖海岛LHaisland
图文来源:霖海岛LHaisland