一、局部变量和全局变量
1,全局变量:没有被任何{}扩住的变量。
全局变量如果没有初始化,会默认初始化为0。
作用域:是整个文件,任何一个函数都可以访问这个全局变量,其中一个对其做了修改,其 他函数访问的都是修改后的值
生命周期:整个程序,一直到整个程序结束,才会被回收。
int value;
void func(){
printf("func:value = %d\n",value);//结果为:0
value = 100;
printf("func:value = %d\n",value);//结果为:100
}
2,局部变量:被{ }括住的都叫做局部变量
局部变量的作用域和生命周期都是最近的{ },最近的{ }结束,变量就被操作系统回收了
int main(int argc, const char *argv[])
{
int value = 10;
printf("main:value2 = %d\n", value2);//0
func();
printf("main:value2 = %d\n", value2);//100
return 0;
}
二,函数的返回值
当函数执行完毕后,如果需要将结果返回至调用处,那么就需要用到返回值。
要返回什么类型的数据,函数名前的返回值类型就写成什么类型。
返回的值要和返回值类型保持一致
可以返回变量 常量 或者 能计算出结果的表达式
遇到return之后,函数立即返回,后面的代码都不执行了
函数的返回值会返回至函数调用出 ,可以直接用变量接函数的返回值
接受后 对变量ret 的操作 就是对结果的操作
#include <stdio.h>
int my_max(int x, int y){
int temp = x>y?x:y;
printf("hello wrold\n");
}
int main(int argc, const char *argv[])
{
int m = 10;
int n = 20;
int ret = my_max(m, n);
printf("%d\n", ret);
printf("%d\n", my_max(m, n));
return 0;
}