初始c语言的知识2.0

写在前言:

本文将粗略介绍变量的作用域与生命周期,常量,字符串,等内容。

变量的作用域与生命周期:

变量的作用域指的是变量所作用的范围,即限定这个变量的可用性的代码范围。而局部变量的作用域即为变量所在的局部范围,请看下图:

此处的a在main函数的函数体内创建,即a只能在这个大括号中使用。

 这两张图也是同一个道理,只能在自己限定的范围内使用。

对于全局变量而言,其作用域为整个工程,在任何一处都能使用,请看下图:

可以看到,此处程序没有报错,说明变量a在任何一处都能使用。

常量的分类

c语言的常量又分为以下几种:

字面常量
const 修饰的常变量
#define 定义的标识符常量
枚举常量

对于字面常量而言,就是我们经常所说的,1,2,3,A,B,C这类数字与字母

 const修饰的常变量

对于const修饰的变量,我们说其具有常量属性,但其却任然是个变量,也即是变量,但又不完全是,为什么说其具有变量属性呢,请看下图:

const修饰的变量a无法被修改,而编译程序的时候编译器也会报错,即具有常量属性,对于变量属性,请看下图

我们可以看到,编译程序的时候1代码是跑不过去的,由于vs2019不支持延长数组的语法,因此1处代码无法跑过,而2处的代码可以正常运行,这也说明了const修饰的常变量具有变量的属性。

#define 定义的标识符常量

#define定义的标识符常量一般会放在头文件或者是程序的开头,输入格式为:

即#define 变量名 赋值

而它也是彻彻底底的常量,在定义数组时也可以使用,请看下图:

编译程序的时候是肯定没有错误的。

枚举常量

枚举常量需要首先创建枚举类型,这个时候就需要用到关键字enum,用enum来创建枚举类型,比如说,我们要创建性别类型,用以下的代码来实现

要注意的是,此处的MALE语句结束后不用加分号,而是加的逗号,在最后的SECRET语句后方也不加分号。

当我们创建好枚举类型之后,我们就可以来打印出枚举常量的值

请看下图:

 

 此处的MALE赋值给了变量S,而MALE的值其实是0,我们可以将其打印出:

 若打印出FEMALE,与SECRET的值,则其它们的值分别为1,2,大家可以试一试。

字符串与转义字符与注释

“HELLO,WORLD”,对于这种由双引号引出来的字符我们称其为字符串,而最重要的一点是,字符串的结束标志为’\0‘,请看以下程序:

咋一看arr1与arr2是相同的,但真的是相同的吗,我们看一下程序的结果:

 2号代码打印出了乱码,这是为什么呢,我们可以打开调试窗口来看一下不同。

发现arr1数组比arr2数组多出了一个’\0'字符,哟啊是我们在arr2数组加上'\0',此时打印的结果为

结论,'\0'为字符串结束标志,字符串的结尾会自动加上‘\0’来结束字符串,printf与strlen函数在读取字符串时以‘\0'作为结束标志,但’\0'不会被读取.也即strlen(”abc“)的字符串长度为3.

关于注释,有两种注释方式,对于c语言的注释来说,我们一般用/**/来注释,请看下图

 但这种方法有个弊端,即无法嵌套注释,

此处的编译器就报了错误。

第二种注释方式为在语句前加两个//,这种方式快捷实用.

vs可以直接对选中的语句全部注释.

转义字符:

如果我们要在屏幕上打印 c:\code\test.c,是不可以直接输入这段字符串来输出,请看下图

此处的\t被转义为水平制表符,类似的,还有以下转义字符:

\? 在书写连续多个问号时使用,防止他们被解析成三字母词
\' 用于表示字符常量'
\“ 用于表示一个字符串内部的双引号
\\ 用于表示一个反斜杠,防止它被解释为一个转义序列符。
\a 警告字符,蜂鸣
\b 退格符
\f 进纸符
\n 换行
\r 回车
\t 水平制表符
\v 垂直制表符
\ddd ddd表示1~3个八进制的数字。 如: \130 
\xdd dd表示2个十六进制数字。 如: \x30 0

其中,要着重介绍的为\ddd,与\xdd,上面已经描述\130,其实\130为八进制数字,其代表的转义字符为其十进制所对应的ASCII码表的字符,请看下图:

在strlen求字符串长度时,要尤为记得’\ddd'中的数字不能超过8,要是超过8,会以另外一种方式计算。如下图

 箭头所指的\628中,\62被解析成一个转义字符,因此\628的字符串长度计算为2.

函数:

函数,将一个一个的功能独立开来,例如我们在求两个数最大值时,就可以写函数来实现,以后要进行比较的时候直接进行调用就可以。如下图求两个数较大值的函数



数组  

数组,是用来存储相同元素的一个集合,首先,介绍的是其如何定义

int arr[10] = {1,2,3,4,5,6,7,8,9,10};这一句代码即为定义数组,其中int指的是数组中存放数据的类型,[10]指的是数组中最多存储10个元素。

int arr[] = {1,2,3,4,5,6,7,8,9,10};这句代码中也可以将[10]中的10去掉,此时数组中存储元素的个数即为初始化的个数。

若不对数组初始化,则arr[]中必须放置所需数字。

要注意的是,若对数组不完全初始化,数组其他元素默认初始化为0,如下图

 此处数组只对第一个元素初始化为0.

数组的下标从0开始,即如果要访问数组中的元素,应该通过下标来访问,如下图

本文完。

 

 

 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值