【C语言——初识C语言(2)】


前言

接着上一篇的学习内容。本文任然是C语言基础内容快速预览。

4、字符串+转义字符+注释

4.1 字符串

定义单个字符必须用单引号,且单引号内只能包含一个字符,输出字符用%c即可。

char ch1 = 'abc';//错误的
char ch2 = 'c';//正确
//输出字符用%c
printf("%c\n", ch1);
printf("%c\n", ch2);

按ctrl+F5运行程序,输出结果如下:
在这里插入图片描述
我们发现ch1 输出并不是想象的abc。
ch2 是正确的。所以单引号只能定义一个字符。
多个字符在一起就是字符串了,例如定义字符串abc,需要用双引号括起来。arr[]表示数组,括号内可以不写数字。输出字符串用%s表示。也可以写成下面的单引号形式。

char arr1[] = "bit";

在这里插入图片描述

学习字符串需要注意的是:
字符串的结束标志是一个 \0 的转义字符。 在计算字符串长度的时候 \0 是结束标志,不算作字符串内容。字符串输入也可以写成下面的单引号形式,例如输出arr3[ ]和arr4[ ]:

char arr3[] = {
    
     'b','i','t' };
char arr4[] = {
    
     'b','i','t','\0'};

对比输出结果,发现arr1[ ]和arr4[ ] 的输出的结果相同,arr3[ ] 却是乱码的。
在这里插入图片描述
要分析原因,需要观察字符串变量arr1[ ]、 arr3[ ] 、arr4[ ] 在程序中的变化。
在程序界面,键盘上按F10,程序进入调试,界面会显示正在调试,点击调试—窗口—监视—监视1,见下图

在这里插入图片描述
在下面的监视窗口输入arr1、arr3、arr4,然后按回车或者点击空白处就行了。黄色箭头代表程序运行调试到哪一步了。
在这里插入图片描述

接着按下F11,程序开始单步调试,字符串变量在没有初始化之前,都是随机的。
在这里插入图片描述
继续按F11,初始化结束后,会看到3个变量的值已经都被赋值了。
在这里插入图片描述
点击旁边的小三角形,变量的具体内容就会展示出来,就会惊讶的发现,看似三者都是输入字符串bit,结果大不一样,arr1、arr4都是以字符‘\0’结尾,arr3中却没有。
在这里插入图片描述
arr1采用双引号输入字符串,末尾是默认包含结束字符’\0’的;arr3的输入是没有的;arr4是主动添加的。同时输出三个字符串和它们的长度:
由于arr1和arr4有结束字符’\0’在末尾,字符串就结束了,输出值是bit,长度是3个字符。
arr3没有结束字符’\0’在末尾,所以在内存中,其末尾会存有一些不知道是什么的随机值,这样输出就是乱码的,而长度15更是不对,都不知尾巴后面跟着些什么乱七八糟的东西。
在这里插入图片描述
在这里插入图片描述
因此建议在输入字符串时用双引号的形式。

4.1 转义字符

要在屏幕上打印一个目录: c:\code\test.c

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

在这里插入图片描述
应该改成下面的形式

printf("c:\\code\test.c\\n");
int main()
{
    
    
	printf("%c\n", '\'');//在屏幕上打印一个单引号'
	printf("%s\n", "\"");//在屏幕上打印一个字符串,字符串的内容是一个双引号“
	return 0;
}

运行下面程序,输出字符串长度

#include <stdio.h>
int main()
{
    
    
printf("%d\n", strlen("abcdef"));
// \62被解析成一个转义字符
printf("%d\n", strlen("c:\test\628\test.c"));
return 0;
}

在这里插入图片描述
这里按照上文提到的用监视变量的方法,可以一目了然的观察到字符串变量arr的变化,包含14个字符,长度是14,末尾包含结束字符’\0’,这是隐藏的,且不算作字符内容,仅仅表示字符串到此结束了。
在这里插入图片描述

5、注释

  • 代码中有不需要的代码可以直接删除,也可以注释掉
  • 代码中有些代码比较难懂,可以加一下注释文字
int add(int x, int y)
{
    
    
	return x - y;
}
/*C语言风格的注释
int add(int x, int y)
{
	return x - y;
}*/

int main()
{
    
    
	//C++注释风格
	//int a = 10;
	//调用add函数,完成加法
	printf("%d\n", add(1,2));

	return 0;
}

6、选择语句

如果你好好学习,校招时拿一个好offer,走上人生巅峰。
如果你不学习,毕业等于失业,回家卖红薯。
这就是选择!

int main()
{
    
    
	int coding = 0;
	printf("你会去敲代码吗?\n");
	printf("选择1 or 0)");
	scanf("%d", &coding);
	if(coding == 1)
	{
    
    
		prinf("坚持,你会有好offer\n");
	}
	else
	{
    
    
		printf("放弃,回家卖红薯\n");
	}
	return 0;
}

7、循环语句

C语言中重复执行的语句就是循环,有三种形式:

  • while语句
  • for语句
  • do … while语句

下面举例while循环,其它两个循环后面再更新

int main()
{
    
    
	printf("加入大厂\n");
	int line = 0;
	while(line<=20000)
	{
    
    
		line++;
		printf("我要继续努力敲代码\n");
	}
	if(line>20000)
		printf("好offer\n");
	return 0;
}

8、函数

下面是一个简单的求两个输入整数的和,并打印出来。没学函数之前的写法:

int main()
{
    
    
	int num1 = 0;
	int num2 = 0;
	int sum = 0;
	printf("输入两个操作数:>");
	scanf("%d %d", &num1, &num2);//输入函数
	sum = num1 + num2;
	printf("sum = %d\n", sum);
	return 0;
}

将加法的语句写成函数以后,函数的特点就是简化代码,代码复用:

int Add(int x, int y)//加法的函数定义
{
    
    
	int z = x+y;
	return z;
}
int main()
{
    
    
	int num1 = 0;
	int num2 = 0;
	int sum = 0;
	printf("输入两个操作数:>");
	scanf("%d %d", &num1, &num2);
	sum = Add(num1, num2);//调用函数
	printf("sum = %d\n", sum);
	return 0;
}

9、数组

C语言规定:数组的每个元素都有一个下标,下标是从0开始的。数组中的可以通过下标来访问的。
下面定义了一个包含10个元素的数组arr1[10],初始化都为0。下标的范围是0-9。

int arr1[10] = {
    
    0};//定义了一个包含10个元数的数组,初始化都为0
///如果数组10个元素,下标的范围是0-9

在这里插入图片描述

int main()
{
    
    
	
	int i = 0;
	
	int arr[10] = {
    
    1,2,3,4,5,6,7,8,9,10};
	for(i=0; i<10; i++)//for循环打印数组中的10个元数
	{
    
    
		printf("%d ", arr[i]);
	}
	printf("\n");
	return 0;
}

总结

C语言基础内容还没结束,本文主要是想介绍VS2017 简单的调试功能,并在窗口中监视变量的变化,对后续复杂程序的学习有很大的帮助。

F10 程序进入调试界面
F11 单步调试
shift+f11 结束调试

猜你喜欢

转载自blog.csdn.net/taibudong1991/article/details/123708243