10.12下午 局部和全局变量、函数的类型与返回值对应

发布于 2024-10-12  955 次阅读


这是填空题的第一天(死变态,老子还没开始学函数,现在才刚开始学数组)

// 定义一个函数 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 的原因是函数需要返回一个整数类型的值。因为 ab 都是整数(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():有时会在教学简单示例代码中见到,但不建议用于实际项目

届ける言葉を今は育ててる
最后更新于 2024-11-05