初识C语言(2)

看来第二节课,为了方便以后自己的记忆,把大致内容写出来,以便自己的回顾。

变量、常量
字符串+转义字符+注释
选择语句
循环语句

主要讲了这些,首先上次我已经大概写了变量,变量又可分为全局变量,局部变量。下面我用函数表示一下

int a = 1000;
int main()
{

	int b = 100;
	printf("%d\n", a);
	return 0;
}

在大括号外面就是全局变量,b就是局部变量;

作用域
作用域(scope)是程序设计概念,通常来说,一段程序代码中所用到的名字并不总是有效/可用
的而限定这个名字的可用性的代码范围就是这个名字的作用域。
全局变量的生命周期是作用于整个工程,而局部变量的生命周期出了括号之后就结束了
int main()
{
	{
		int a = 0;
		printf("%d\n", a);
	}

	
}

50e88ddfb1544c5c8ca9df25044bbc79.png刚刚就是局部变量所打印出,但是当我们把printf换个位置看看呢?

17032866392243958793a9009c6a11b7.png

编译报错,显示未申明标识符,这是啥原因呢?其实就是 a这个变量出了括号之后他的生命周期就结束了。全局变量的生命周期是伴随着整个项目的,因此我用一个代码显示一下

int a = 20;
void test()
{
	int i = 20;
	int c = a + i;
	printf("test=%d\n", c);

}


int main()
{
	
	printf("%d\n", a);
	test();
	return 0;
}

 

 

d33639cd9c6045f392b2bb3f6a09664f.png

 

 

刚刚我创建的int a的变量就是全局变量,从主函数main开始打印出a的值,然后经过test函数,通过变量i的相加,打印出结果40;当然变量还可以通过另一个方式进行表示,我们可以在创造一个源文件例如add.c,在里面放一个全局变量int num;

d4668ae607244a02be5b5d9278ae6d07.png

 

extern num;
int main()
{

	printf("%d\n", num);

	return 0;
}

这边是使用了关键字 extern;打印出的结果是

33df854904c04549a5e97333049b0901.png

下面来介绍一下常量;常量就是不能改变的值,很好理解;

常量又可分为

字面常量
const 修饰的常变量
#define 定义的标识符常量
枚举常量
字面常量就是10,20,30或者‘w' "abcd"等就是字面常量,
还有就是关键字const修饰的,
int main()
{
	const int num = 10;


	return 0;
}

这边的 变量num的值就是已经被固定了,不能再被改变了,但是

int main()
{
	const int num = 10;
	int arr[num] = { 1,2,3,4,5,6 };
	printf(%d\n, arr);


	return 0;
}

这边num就是错误的,它的本质其实还是一个变量,数组中应该输入常量表达式;

define关键字

#define m 10
int main()
{

	int arr[m] = { 1,2,3,4,5,6,7,8,9,10 };
printf("%d\n", m);
	return 0;
}

a7c821edf80c4886b187762aeaf803ab.png像使用define关键字对数组的时候还是可以使用的。

最后一个表示常量的就是枚举常量;枚举关键字是enum;用一段代码来表示

 enum Color
{
	//RED,GREEN,BLUE是枚举类型Color的可能取值,同时也是常量,所以叫枚举常量
	RED,//0
	GREEN,//1
	BLUE//2
};

int main()
{
	enum Color c = BLUE;
	int a = 0;
	printf("%d\n", RED);
	printf("%d\n", GREEN);
	printf("%d\n", BLUE);

	//RED = 100;//err

	return 0;
}

1de988ec00504f3caf274fd8c9a0af4b.png

 

常量的知识点基本到这边;      我来介绍一下字符串;            

这种由双引号(Double Quote)引起来的一串字符称为字符串字面值(String Literal),或者简称字符
串。
注:字符串的结束标志是一个 \0 的转义字符。在计算字符串长度的时候 \0 是结束标志,不算作字符串内容。比如’a'叫做字符,”abcd”叫做字符串。
int main()
{
	char ch1[] = { 'a','b','c' };
	char ch2[] = "abc";

	printf("%s\n", ch1);
	printf("%s\n", ch2);

	return 0;
}

                                                                                                  

b4b8d453c94047129da0637d59d16d7e.png

 

其中为啥打印出的结果是这样的呢,其原因就是字符串的末尾有一个\0的元素,当打印到这个元素的时候会自动停止,而字符a,b,c后面在没有遇到\0的时候会一直打印,因此会出现上面的步骤。

04fabd1fa2b144fc9b8a7d5bf1c0b861.png

 

在图像中可以发现ch1有3个元素而ch2有四个元素,是因为把\0算作元素算进去了,

而在计算长度长度的时候\0就不算了。

0bc0a5dbc62446faaa4c7f2492732cac.png

 

可以发现ch1字符长度居然打印出来是35而ch2字符长度是3,我们在ch1后面加上\0试试

 

 

dbcd6099519e46cdaae45f8f761892e4.png

 

这次变得一样了,因此我们可以发现\0是字符串结束的标志,在计算长度的时候不算做长度。

 

转义字符就是转变原来的意思的字符,我直接拷贝过来记忆就行,

11524d61c32348a790d15664b1968fc2.png

 

这其中\f,\v,\?是不怎么使用的。

注释就是为了让复杂的代码加上点提示,让人看懂。\ddd,\xdd一个代表8进制一个代表16进制,

这俩个其实就是很好理解的,我就个自己偷个懒。

选择语句

如果你好好学习,校招时拿一个好offer,走上人生巅峰。
如果你不学习,毕业等于失业,回家卖红薯。
这就是选择
这个用if语句表示,先用张图
 
 
 
 
966927f3546f48849564c58693b58e77.png
 
 
 
int main()
{
	int coding = 0;
	printf("请好好学习,请选择1或0\n");
	scanf("%d", &coding);
	if (coding == 1)
	{
		printf("会有好的offer");
	}
	else if (coding == 0)
	{
		printf("回家卖地瓜");
	}
	else
		printf("输入错误");


	return 0;
}

 

另外一个循环语句也借助图片来写一个代码;
 
 
 
 
5483df80781b4e5fbcc6a1a4c5fb5bed.png
 
 
 
根据老师上课给的一个简单的条件就是敲代码是否有20000行来写。
zhe
 
 
int main()
{
	int coding = 0;
	printf("加入比特学习敲代码");
	while (coding <= 20000)
	{
		printf("coding=%d继续当牛马敲代码\n", coding);
		coding++;
	}
	if (coding > 20000)
	{
		printf("可以出师,去干活当牛马");
	}

	return 0;
}

 

这边循环语句其实有三种,这边只是介绍了其中的一种。
 
 
 
 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值