C语言变量详解(二)

五、变量的作用域

C语言中的变量分为局部变量和全局变量。

局部变量是在函数内部定义的变量,它的作用域仅限于该函数。当函数被调用时,系统会为该函数分配一块栈内存,用于存储函数的局部变量。当函数执行完毕后,这块栈内存会被自动释放,局部变量也随之消失;

全局变量是在函数外部定义的变量,它可以在整个程序范围内访问。

变量可以被使用的区域就叫做“变量的作用域”。

举例: 下图所示代码  (entern 一般不加)

 

全局变量  和局部变量  的区别在于 二者作用域的不同。

全局变量适用于整个项目,可以被任何函数调用; 

局部变量只适用于被创建的函数,只能在函数内部被使用,其他函数无法调用。

下面拿上图创建的两组变量举例:

我们可以看到,全局变量 global_var2 作为全局变量可以在 main函数、func 函数中被调用

结论1:全局变量在整个项目内可以被随意调用。

那么在func 函数之外,func函数内的局部变量是否还可以进行调用呢?(不可以。。。)

我们创建一个新的函数来试验一下,代码如下图所示,在main函数内调用定义在func函数内部的局部变量local_variable.

哪里出问题了呢?

编译器已经标红啦。。。。。。

问题就出在了我们是在“func函数内”进行的声明。因为在func函数内进行声明,那么变量 local_variable就是局部变量,仅仅能在func函数内部使用。

结论2:局部变量只能在被创建的函数内部进行调用,无法被外部函数调用。

六、自动变量和静态变量

自动变量是在函数内部定义的局部变量,当函数调用结束时,自动变量的内存会被释放,前面提到的  a, b, c 就是自动变量;

静态变量是在函数内部定义的局部变量,但使用关键字static(后面会专门出一期关键字合集)修饰,其生命周期会持续到整个程序运行结束。通俗地理解就是,有 static 修饰的局部变量生命周期就变得和全局变量一样。

后面会专门出一期变量和内存。。。

七、常量

C语言中的常量是不可修改的量。整型常量用const int表示,浮点型常量用const float表示,字符型常量用单引号括起来。例如,const int a = 10;表示将整数10赋值给常量a。

(不是很重要,了解即可)

八、其他类型的变量

指针变量:指针变量用于存储另一个变量的内存地址。声明指针变量时,需要在类型前加上星号(*)。例如,声明一个整数指针可以使用int *p。

数组变量:数组是一种连续的内存空间,用于存储相同类型的数据。声明数组时,需要指定数组的类型、名称和大小。例如,声明一个整数数组可以使用int arr[10]。

枚举变量:枚举是一种特殊的数据类型,用于表示一组固定的值。声明枚举变量时,需要使用关键字enum。例如,声明一个颜色枚举可以使用enum Color {RED, GREEN, BLUE}。

九、类型转换

C语言允许在不同类型之间进行转换,但需要注意转换过程中可能丢失精度或导致溢出。常用的类型转换有强制类型转换(如(int)a.b;)和隐式类型转换(如将浮点数赋值给整数)。

这个要后面讲一点内存才好理解,后面还会详细说哒!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值