对代码生命周期与作用域,及常量、字符的理解

对代码生命周期与作用域,及常量、字符的理解,第1张

对代码生命周期与作用域,及常量字符的理解

首先我认为全局变量和局部变量这个概念和代码的生命周期存在千丝万缕的关系

再来看看全局变量和局部变量

我们不难看出局部变量存在于函数体也就是{}中的变量,是对全局变量的进一步修饰。就好像你去pdd买东西的价格(局部变量)和官网发售价(全局变量)一样。是全集和子集的关系。

此外在写代码的过程中我还注意到一个问题在c语言中函数头、函数体、结束时的返回值是紧密相连的,就和人一样头是和身体通过脖子连着的,函数也一样在C语言中定义全局变量时我们应该在函数头前声明(int、char等)并初始化,如果二者对调会报错。见下图

 再来看生命周期和作用域

这两是相连的就好像生命和生活的地方一样在地球上普通人可以活着,而跳出大气层就活不了了

而在{}函数体中被定义的变量可以存在也就是在该函数体内拥有生命空间,但一旦跳出该函数体就不在该作用域内了,生命周期到此截止。

常量:

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

 字面常量:顾名思义光看他就知道变量值。

const修饰变量:

 如图用的float浮点声明pai是常变量不可修改,既然不可修改那我们改一改试试错,下次看报错就容易了解哪里出错

 

 vs2019还是蛮给力的我在用const修饰完pai后,又输入pai值为1.2,报错显示const对象不能修改

但变量经过const修饰后还是变量不能当为常量。

字符

字符'a'、'A'、'#'单引号的单个符号都称为字符。

字符串“abcd”使用双引号引起来的

在c语言字符组用char arr【】来表示那么在其中可以表示字符和字符串,但输出是否相同呢

我们不妨写出

 

可见含有字符的字符组出现了乱码,而字符串没有,这是为什么呢?

于是我用了监视窗口看看每个字符组所包含的字符

然后不知道为啥没跳出来。出现乱码是因为 结尾没有转义字符''字符不知道在't'后终止直至找到下一个才终止

 待续。。。累了

 

 

 

 

 

 

 

 

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/4652758.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-06
下一篇 2022-11-06

发表评论

登录后才能评论

评论列表(0条)

保存