初识C语言 DAY1 【变量与常量,变量的作用域 变量生命周期】

本文介绍了C语言的变量与常量概念,区分了局部变量和全局变量,以及它们的作用域和生命周期。还探讨了在计算2个整数和时遇到的编译器警告,提示使用scanf_s代替scanf以提高安全性。


前言:

本文总结于此视频

一、格式是什么?

#include <stdio.h>
int main()
{
    printf("hehe");
    return 0;
}

二、变量与常量

变量:设变量age high wieght

#include <stdio.h>
int main()
{
	short age = 20;//为变量赋值 
	int high = 180;
	float weight = 60;
	return 0;
	}

变量分为局部变量全局变量

局部变量:{}内部定义
全局变量:{}外部定义

#include <stdio.h>
int a = 10;//全局变量
int main()
{
	int b = 20;//局部变量
	return 0;
}

当全局变量与局部变量名字相同时,局部优先于全局
2222222

写一个代码,计算2个整数的和

#define _CRT_SECURE_NO_WARNINGS
//写一个代码,计算加法
#include <stdio.h>
int main()
{
  //设个未知数
	int num1 = 0;
	int num2 = 0;//初始化
	//将其输入
	//printf 输出
	//scanf  输入
	scanf("%d %d", &num1, &num2);//%d整数 &取地址符号
	//求和
	int sum = num1 + num2;
	//输出
	printf("%d\n", sum);//%d整型输出
	return 0;
}

运行失败

1>------ 已启动生成: 项目: Project1, 配置: Debug x64 ------
1>test.c
1>D:\CCCC\Project1\Project1\test.c(11,2): error C4996: ‘scanf’: This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>已完成生成项目“Project1.vcxproj”的操作 - 失败。
========== 生成: 0 成功,1 失败,0 最新,0 已跳过 ==========
========== 生成 于 12:28 完成,耗时 00.365 秒 ==========
注:scanf_s 为VS独有,不能跨区平台使用
尽量使用#define _CRT_SECURE_NO_WARNINGS

详细操作视频

变量的作用域

1.局部变量的作用域是变量所在的局部范围
2.全局变量的作用域是整个工程
在这里插入图片描述
在这里插入图片描述
加入 entern 可以跨文档使用( entern声明一个符号
在这里插入图片描述

变量生命周期

局部变量的生命周期可以约等于作用域
全局变量的生命周期为整个程序的生命周期
在这里插入图片描述

### 外部变量作用域的基本概念 #### 什么是外部变量? 外部变量是指那些在函数之外定义的变量,也被称为全局变量。这些变量具有全局作用域,因此可以在整个程序的不同部分中被访问和修改[^2]。然而需要注意的是,如果在一个函数内部尝试重新定义一个同名的外部变量而未显式声明为`global`,则会在函数内部创建一个新的局部变量,而不是修改外部变量。 #### 作用域的概念 作用域限定了变量名称的可用性范围,即表示已定义变量能够被使用的代码区域[^1]。不同的编程语言有不同的作用域规则。例如,在C++中有四种主要的作用域类型:全局作用域、局部作用域、命名空间作用域以及类作用域;而在Python中,存在内置作用域、全局作用域、局部作用域和嵌套作用域这几种层次结构[^4]。 #### Python中的外部变量(全局变量) 在Python里,当一个变量在所有函数体外定义时,它就成为了全局变量或者说是外部变量。这种类型的变量可以从任何地方调用——无论是从其他函数还是脚本文件内的任意位置[^5]。下面通过一段简单的例子来展示如何使用外部变量: ```python # 定义一个外部(全局)变量 external_variable = "I am a global variable" def my_function(): print(f"Inside function, accessing external variable: {external_variable}") # 正确地打印出了外部变量的内容 my_function() print(f"Outside of any functions, the value is still accessible: {external_variable}") ``` 在这个案例中可以看到无论是在函数内外都能够正常读取并显示名为 `external_variable` 的值。 #### 修改外部变量的方法 为了能够在某个函数内部改变已经存在的外部变量而非仅仅创建新的本地副本,需要利用关键字 `global` 明确指出要操作的就是那个位于更高一层作用域下的实体。如下所示: ```python counter = 0 def increment_counter(): global counter counter += 1 # 这样做会更新真正的全局变量 'counter' increment_counter() print(counter) # 输出应该是 1 而不是保持初始状态不变 ``` 这里强调了如果不加 `global` 声明的话,默认情况下 python 将认为你在试图初始化另一个独立的新局部变量 `counter`, 导致最终结果不符合预期。 #### 总结 外部变量提供了跨越多个逻辑单元共享数据的能力,但同时也增加了潜在的风险比如意外覆盖重要信息等问题所以应该谨慎对待它们的存在否及其影响程度。理解清楚各种不同种类的作用域能够帮助开发者更好地控制自己的应用程序行为模式从而构建更加健壮可靠的解决方案。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

马职音人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值