初识C语言(2)

目录

文前tip

变量的作用域和生命周期

作用域

局部变量的作用域:

 全局变量的作用域:

生命周期

常量 

字面常量

const修饰的常变量

#define定义的标识符常量

枚举常量

字符串

转义字符 

引子

转义字符的类型 

\?

\'和\"

 \\和\a

 \b VS \f VS \n VS \r

 \t和\v

 \ddd和\xdd

 Ascll

转义字符的Q

注释

编程语句

顺序结构

选择结构——选择语句

循环结构——循环语句


文前tip

上一篇博文中,预留了一个编程题目,在这里为大家解答。

//写一个代码
//完成两个整数的相加,并输出结果


#include
int main()
{
int a = 0;
int b = 0;
int s = 0;
//输入两个值
scanf_s("%d %d", &a, &b);//scanf函数是输入函数
s = a + b;
printf("%d\n", s);//printf函数是输出函数
return 0;
}

在我的gitee账户中也有详细的关于C语言的代码。欢迎大家去关注我!

【gitee:https://gitee.com/TSQXG】

变量的作用域和生命周期

在上篇博文讲到变量分为局部变量和全局变量,在这里我们分别探讨它们的作用域和生命周期!

作用域

初识C语言(2)_第1张图片

局部变量的作用域:

初识C语言(2)_第2张图片

初识C语言(2)_第3张图片

 全局变量的作用域:

初识C语言(2)_第4张图片

初识C语言(2)_第5张图片

 综上所述:

  1. 局部变量的作用域是变量所在的局部范围(注:所定义处先后的作用域范围内)
  2. 全局变量的作用域是整个工程

生命周期

初识C语言(2)_第6张图片

综上所述:

  1. 局部变量的生命周期是:进入作用域生命周期开始,出作用域生命周期结束。
  2. 全局变量的生命周期是:整个程序的生命周期。

常量 

初识C语言(2)_第7张图片

字面常量

形如20,19.8,7.34,'a'这样直接写出的值都是字面常量。

const修饰的常变量

初识C语言(2)_第8张图片

初识C语言(2)_第9张图片

上面说到a本质上还是变量,就像"美籍华人"还是华人一样,现在我们想去证明a本质是一个变量?

证明a本质是变量:

初识C语言(2)_第10张图片

上面是没有被const修饰的a,那下面被const修饰了的a会编译正确吗? 

初识C语言(2)_第11张图片

 很显然不会,所以a的本质还是变量,那有些人显示编译正确是为什么呢?

初识C语言(2)_第12张图片

这种情况存在于.cpp下C++情况是适用的。那这里我们不再过多探讨。 

#define定义的标识符常量

初识C语言(2)_第13张图片

枚举常量

初识C语言(2)_第14张图片

初识C语言(2)_第15张图片

那么枚举常量的值可以改变吗?当然可以

 初识C语言(2)_第16张图片

字符串

上一篇博文我们提到有字符类型,那么有字符串类型吗?答案是没有

那我们怎样去表示字符串呢?字符串里又蕴含了什么呢?

"hello tangdi.\n"

这种由双引号引起来的一串字符称为字符串字面值,或者简称字符串

特别注意:字符串的结束标志是一个\0的转义字符。

                  在计算字符串的长度的时候\0是结束标志,不算作字符串内容。

接下来我们来------------证明\0的存在

初识C语言(2)_第17张图片

------------------\0的重要性 

初识C语言(2)_第18张图片

初识C语言(2)_第19张图片

 那么我们手动加上\0可以吗?当然可以

初识C语言(2)_第20张图片

----------------------\0不算作字符串的内容

初识C语言(2)_第21张图片

转义字符 

大家可能会疑惑\n,\0到底是什么?接下来我们要学到转义字符。

引子

转义字符:"转义"顾名思义就是转变原来的意义。

当我们想打印一个路径:C:\code\test_6_30\test.c

我们可能会这样写:初识C语言(2)_第22张图片

 可是没有得到我们想要的结果,这是为什么呢?

这是因为由转义字符的存在,那我们怎样去打印出我们想要的结果呢?

当然是继续"转义"啦!

初识C语言(2)_第23张图片

转义字符的类型 

初识C语言(2)_第24张图片

 接下来我们将逐一分析这些转义字符

\?

初识C语言(2)_第25张图片

\'和\"

初识C语言(2)_第26张图片

 \\和\a

初识C语言(2)_第27张图片

初识C语言(2)_第28张图片

 \b VS \f VS \n VS \r

\f基本不用这里我们不分析了,\n和\r大家也可以动动手指自己尝试验证下它们的作用。 

初识C语言(2)_第29张图片

\t和\v

\t是水平制表符相当于Tab键,\v是竖直制表符几乎不用。

#include
int main()
{
p   rintf("abcde");
----//相当于一个\t用于水平对齐的作用
return 0;
}

 \ddd和\xdd

\ddd其中ddd表示1~3个八进制的数字。字符的8进制表示的形式。

如\130表示字符X。先将130------->88 转化为8进制------->查询Ascll码表得出字符

\0就是特殊的\ddd。

初识C语言(2)_第30张图片

\xdd其中dd表示2个十六进制的数字。字符的16进制表示的形式。

如\x30表示字符0 。先将30--------->105 转化为16进制-------->查询Ascall码表得出字符

初识C语言(2)_第31张图片

Ascll

!Ascll码表取值范围有限。

!记忆一些特殊的值即可:A为65  a为97   0为48(同个字母的大写比小写字母要小32)

!0~31是不可打印字符

初识C语言(2)_第32张图片

转义字符的Q

我们来计算一下整个字符的个数吧!

初识C语言(2)_第33张图片

所以,转义字符在计算字符数的时候,所有转义字符都只算一个字符。 

注释

初识C语言(2)_第34张图片

编程语句

初识C语言(2)_第35张图片

顺序结构

选择结构——选择语句

主要是if else语句和switch语句,这里我们简单讲解一下if else语句 

初识C语言(2)_第36张图片

循环结构——循环语句

 C语言中如何实现循环呢?

while语句,for语句,do.....while语句。在这里我们了解一下while语句。

#include
int main()
{
	int line = 0;
	while (line<30000)//特别注意语句不需要加分号
	{
		printf("敲代码:%d\n",line);
		line++;
	}
	if (line == 30000)
	{
		printf("好offer\n");
	}
	return 0;
}

 那我们可以这样写吗?

#include
int main()
{
	int line = 0;
	while (line<30000)
	{
		printf("敲代码:%d\n",line);
		line++;
	}
		printf("好offer\n");
	return 0;
}

当然不可以,有人说实现代码敲到30000行直接跳出循环,不需要限制条件了,但是万一在循环的过程中停止了没有达到30000就直接结束,也跳出了循环,这是不符合我们的题目要求的。 

初识C语言(2)_第37张图片

在vs运行之后发现并不能去掉if的限制条件。

最后,下篇博文博主将介绍到函数。大家可以提前尝试去编译器上利用函数写出两个整数相加。

我也将在下篇文章把代码放出来。博主最近才从期末考试的水生火热中解脱出来了。

感谢大家的阅读,有任何的问题和错误都可以发邮箱给博主,谢谢大家!

【邮箱:[email protected]

你可能感兴趣的:(c语言)