main函数 全局变量

文章介绍了编程中的基本概念,包括编译器如何通过头文件链接函数库,main函数的作用,常量和变量的定义及命名规则,以及变量的作用域——全局和局部。此外,还讨论了逻辑运算符&&和||的运算规则及其短路特性。

1.编译器通过头文件找到对应的函数库,进而把已引用函数的实际内容导出来代替原有函数。.进而在硬件层面实现功能。

1.main()函数 //程序的入口,一个项目中有且仅有一个main函数,但可以有多个文件
2.常量:不可以修改的值。
数字常量,小数常量,字符常量,字符串常量。
2.变量
1.只能使用数字,下划线,字母
2.只能以字母或者下划线开头
3.区分大小写
4.不可使用关键字

建议函数名首字母大写,变量名首字母小写,宏名全部大写
变量是程序的基本组成单位,三要素:(类型,名称,值)。例如 int age=21; 定义一个int型变量,名称是age ,赋值为21
2.1变量的作用域
作用域:变量的作用范围
全局变量:定义在所有函数之外的变量,定义之后都可以访问,数据共享,在函数中变量被改变,在其他函数中该变量也被改变。
局部变量:在函数或者代码块里面定义的变量,从定义开始到函数或者代码块结束。
例子: a是全局变量。
#include <stdio.h>
void fun();
int a = 5;
int main() {
a = 10;
printf(“%d\n”, a);
fun();
return 0;
}
void fun() {
printf(“%d”, a);
return 0;
}

1、&&和||属于逻辑运算符。关于&&和||的表达式的运算规则是这样的:

表达式1 || 表达式2,只要任意表达式为true,则整个表达式的运算结果为true。

表达式1 && 表达式2,只有所有表达式都为true,则整个表达式的运算结果才为true。根据集合的补集的思想,只要任意表达式为false,则整个表达式的运算结果为false。

2、&&和||的短路运算,是指如果在进行前面的表达式的运算过程,通过判断已经明确的知道整个表达式的结果,那么就不会进行后面表达式的运算判断。
例:
int a = 0;
int b = 0;
int c = 0;
if (++a && b++ && ++c)//&&短路现象,碰到假的了,就不继续进行了。
printf(“真\n”);
else
printf(“假\n”);
printf(“%d,%d,%d\n”, a, b, c);
输出:假 1,1,0

### 如何在函数中正确使用全局变量 在编程语言中,函数通常用于封装逻辑并实现特定功能。然而,在某些场景下可能需要在函数内部操作外部的全局变量。以下是关于如何在不同编程语言(如Python和C语言)中正确使用全局变量以及最佳实践的内容。 #### Python 中的全局变量使用 在 Python 中,可以通过 `global` 关键字显式声明某个变量为全局变量。这允许函数内部对该变量进行修改或重新赋值[^1]。如果不使用 `global` 关键字而直接尝试修改一个未定义的变量,则会引发异常或警告[^2]。 下面是一个简单的例子展示如何在 Python 函数中使用全局变量: ```python # 定义全局变量 value = 0 def modify_global(): global value # 使用 global 声明该变量为全局变量 value += 1 # 修改全局变量 modify_global() print(value) # 输出结果应为 1 ``` 需要注意的是,只有当需要 **写入** 或 **更新** 全局变量时才需使用 `global` 关键字;如果只是读取其值,则无需额外声明[^3]。 #### C 语言中的全局变量应用 对于 C 语言而言,全局变量位于所有函数之外,并在整个程序生命周期内保持存在[^5]。通过合理利用这些特性,可以使被调用函数间接返回多个值。例如,可以将目标数据存储到预先设定好的全局变量里,从而达到多值传递的目的[^4]。 考虑这样一个需求——找出数组的最大值与最小值并将它们反馈给主流程部分。此时就可以借助两个独立的整型全局变量作为容器来承载最终的结果: ```c #include <stdio.h> // 定义全局变量 max 和 min 来保存计算后的极值 int max, min; void findMinMax(int array[], int size){ max = array[0]; min = array[0]; for (int i=1; i<size; ++i){ if(array[i]>max){ max=array[i]; } if(array[i]<min){ min=array[i]; } } } int main(){ int data[] = {78,-9,65,4}; int length = sizeof(data)/sizeof(data[0]); findMinMax(data,length); printf("Max=%d Min=%d\n",max,min); return 0; } ``` 上述代码片段展示了如何运用全局变量简化复杂的数据交换过程。 #### 最佳实践建议 尽管全局变量提供了便利之处,但也伴随着潜在风险,比如难以追踪状态变化、增加调试难度等问题。因此推荐遵循以下几点原则: - 尽量减少依赖于全局共享资源的设计模式; - 明确文档化那些确实必要的公共成员及其预期行为; - 对可变对象采取只读策略除非绝对必要更改之。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值