这是填空题的第一天(死变态,老子还没开始学函数,现在才刚开始学数组)
// 定义一个函数 max,用于返回两个整数中的最大值
int max(int a, int b) {
int c; // 定义变量以存储最大值,同时科普一下,这里的c是局部变量,优先级是高于全局变量的
c = a > b ? a : b; // 使用三元运算符寻找最大值
return c; // 返回值为c,这个值也是max函数调用后会输出的值
}
// 主函数
void main() {
a=1,b=2; //在这个代码中,main 函数中的 a 和 b 与 max 函数中的 a 和 b 是不同的
//而能够进行运算是下面max函数的功劳,当你在 main 函数中调用 max(a, b) 时,main 中的 a 和 b 的值会被传递给 max 函数,作为 max 函数的参数。max 函数内的 a 和 b 是通过值传递(pass by value)得到的,它们接收了来自 main 函数中的值,但在 max 函数中对它们的修改不会影响 main 函数中的同名变量
printf("%d\n", max(a, b)); // 调用 max 函数并打印结果
}
还有一点,在不同函数中是可以定义相同标识符的变量的,因为局部变量的作用域仅限于该函数,而与其他函数互不影响
现在我知道了在main主函数的外面也是可以进行定义变量的,只不过这被叫做全局变量
个人感觉,全局变量应该就是说在哪一个函数中都被认可而且可以使用的变量,同时,在函数中局部变量的优先级是高于全局变量的
这个题就是傻逼,输出结果是6,注意是看看这个定义的全局变量和定义的max函数
在 int max(int a, int b)
这个函数定义中,int
代表函数的返回类型
int max(int a, int b)
的含义是:max
函数接收两个int
类型的整数作为参数,并且返回一个int
类型的结果(就像main主函数一样,当然需要用到int)
使用 int
的原因是函数需要返回一个整数类型的值。因为 a
和 b
都是整数(int
),结果也自然是整数,所以函数的返回类型定义为 int
我们从这个例题上再来分析一下void main 和int main的区别
1. 语法层面:
void main()
:表示函数不返回任何值int main()
:表示函数返回一个整型值(int
),通常用于向操作系统返回程序的执行结果
2. 标准规范:
根据C语言的标准(如C89、C99和C11,b站上我记得之前好像有人提到过这些标准),main
函数的推荐声明是int main()
,因为程序应当向操作系统返回一个状态码,以表示程序是否成功执行:
int main()
返回0
通常表示程序正常执行完成- 返回非零值(如
return 1;
)表示程序出现了某种错误
兼容性和移植性:
int main是最规范的,适用于所有平台和编译器
void main()
:有时会在教学或简单示例代码中见到,但不建议用于实际项目
Comments NOTHING