初识C语言(2)


前言

嘿嘿,这里来到了初识C语言的第二部分,今天我们会初步认识变量的作用域和生命周期常量字符串和字符转义字符


一、变量的作用域和生命周期

变量分为全局变量局部变量
全局变量:定义在main函数外部的全局范围。
局部变量:定义在函数内部的局部范围。
作用域:变量起作用的范围。

#include<stdio.h>
int a = 30;//这个是全局变量
int  main()
{
	int a=10;//这个是局部变量
	printf("%d\n", a);
	{
		int b=5;//这个也是局部变量
		printf("%d\n", b);
	}
	/*printf("%d ", b);*///当我们把这句话取消注释之后,我们会发现出了b所在的括号范围程序报错.
	return 0;
}

程序结果:
10
5
这是全局变量跨源文件的使用事例

结论:

  • 当全局变量与局部变量同名时优先局部变量
  • 局部变量作用域就是所在的局部范围,全局变量的作用域是整个工程,不够安全,当跨源文件使用时要用extren这个关键字进行声明
  • 局部变量的生命周期是从进入作用域开始,出作用域结束,全局变量生命周期是整个程序的生命周期

二、常量

  1. 字面常量:字面不会改变的值(例如:100,'a’等)
  2. const修饰的常变量:(例如const int a),这意味着这个变量从语法层面被锁住了,不能再改变了,但是被修饰的(a)还是变量,不能做常量做的事(比如定义数组大小之类的)
  3. #define定义的标识符常量:(例如 #define Max 1000)之后程序看到Max就会自动替换成1000,可以增加程序可读性(一般#define后面不加分号,可能会出bug)
  4. 枚举常量:我们生活中有些东西取值范围是固定的,比如三原色(RGB)这就会用到枚举类型(写法如下),枚举常量就是枚举类型中的可能取值(Red,Green,Blue),它们是有值的,默认从0开始依次加一(Red=0,Green=1,Blue=2),也可以通过对第一个枚举常量初始化来改变顺延值(例如 Red=5,那么值就会变成 Red=5,Green=6,Blue=7)
enum color
{
Red,Green,Blue
};

```c
enum color
{
Red=5,Green,Blue//此后Green=6,Blue=7)
};

三,字符和字符串

字符是用放在单引号,字符串是放在双引号里面的
例如:‘A’是字符,“ABC"是字符串。

字符串的结束标识是转义字符’\0’
字符串 “ABC”=‘A’,‘B’,‘C’,‘\0’

#include<stdio.h>
extern int c;
int  main()
{
	char a1[] = { 'a','b','c' };
	char a2[] = "abc";
	return 0;
}

在这里插入图片描述在这里插入图片描述
计算字符串长度时也是只算’\0’之前的字符长度,如果是像a1这样没有’\0’的字符数组,计算机则会向后遍历知道遇到’\0’字符才停止。

#include<stdio.h>
#include<string.h>
extern int c;
int  main()
{
	char a1[] = { 'a','b','c' };
	char a2[] = "abc";
	printf("%d\n", strlen(a1));
	printf("%d", strlen(a2));

	return 0;
}

可以敲一下仔细观察一下结果的不同哟!

转义字符

转义字符:就是加了个’‘转变意思的符号(例如:’0‘是字符0,’\0‘就变成字符串结束标志啦)
转义字符有很多,我们简单认识几个
\"表示双引号里面的双引号,例如我们想打印’’ 11’2’‘5 ‘‘这类秒表计时数据,但是2后面的’‘会和前面开头的’‘配对,这就需要改为’’ 11’2/’‘5 ‘’,表示这个引号就是单纯的引号,不参与配对。
\'原理与之相似
\\表示一个斜杠,一般用于打印路径,例如’’ d:\abc\nDEF ",我们不想\与n组成换行符\n,就会再加一个
比较重要的两个转义字符
\ddd:ddd表示1~3位的八进制数字,这个转义字符表示由ddd表示的八进制数字转化为十进制时对应的ASCII码值所对应的字符。
例如:‘\130’ 130代表的八进制数转化为十进制对应88,88的ASCII码对应X,所以这个字符表示’X’
\dd:同上,只不过dd代表1~2位的十六进制数字

总结

这里对文章进行总结:
以上就是今天要讲的内容,本文简单介绍了一些作用域生命周期,以及一些关于常量,字符与字符串还有关于转义字符的一些小知识点,希望大家能够掌握哟

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值