diff --git a/3_lesson/04_fun_call/04_fun_call.pro b/3_lesson/04_fun_call/04_fun_call.pro new file mode 100644 index 0000000..fc18d89 --- /dev/null +++ b/3_lesson/04_fun_call/04_fun_call.pro @@ -0,0 +1,6 @@ +TEMPLATE = app +CONFIG += console +CONFIG -= app_bundle +CONFIG -= qt + +SOURCES += main.c diff --git a/3_lesson/04_fun_call/main.c b/3_lesson/04_fun_call/main.c new file mode 100644 index 0000000..ef3b7f9 --- /dev/null +++ b/3_lesson/04_fun_call/main.c @@ -0,0 +1,59 @@ +#include + +void myfun1(); +void myfun2(int a, int b); +int myfun3(int a, int b); + +int main(int argc, char *argv[]) +{ + // 函数的调用 + // 没有参数也没有返回值 + // 直接写函数名,并且要在后面加括号 + myfun1(); + + printf("*********************\n"); + + // 有参数,没有返回值 + // 需要在函数名右边括号中传入参数,参数可以是常量表达式,也可以是变量表达式 + myfun2(100, 90); + + int x = 10, y = 20; + // x、y:实参,实际参数,本质就是在函数调用的时候将实参的值传递给形参 + myfun2(x, y); + + printf("*********************\n"); + + // 有参数也有返回值 + // 可以使用一个变量接收函数执行结果(返回值),或者直接输出也可以 + int n; + n = myfun3(100, 90); + printf("n = %d\n", n); + + return 0; +} + +void myfun1() +{ + printf("hello world\n"); + printf("nihao beijing\n"); + printf("welcome to 1000phone\n"); + + return; +} + +// a、b:形参,形式参数,主要用于保存实参传递的值,本质跟实参没有任何关系,只是值传递 +void myfun2(int a, int b) +{ + int sum; + sum = a + b; + + printf("%d + %d = %d\n", a, b, sum); +} + +int myfun3(int a, int b) +{ + int sum; + sum = a + b; + + return sum; +} diff --git a/3_lesson/05_var_global/05_var_global.pro b/3_lesson/05_var_global/05_var_global.pro new file mode 100644 index 0000000..fc18d89 --- /dev/null +++ b/3_lesson/05_var_global/05_var_global.pro @@ -0,0 +1,6 @@ +TEMPLATE = app +CONFIG += console +CONFIG -= app_bundle +CONFIG -= qt + +SOURCES += main.c diff --git a/3_lesson/05_var_global/main.c b/3_lesson/05_var_global/main.c new file mode 100644 index 0000000..996c7a3 --- /dev/null +++ b/3_lesson/05_var_global/main.c @@ -0,0 +1,23 @@ +#include + +// 定义一个普通全局变量 +// 只要是在main函数外(也在子函数外)的变量,就是全局变量 +// 如果全局变量没有进行初始化,则系统自动将其初始化为0 +int num; + +// 全局变量可以在程序的任意一个位置进行对其的操作 +void myfun() +{ + num = 666; +} + +int main(int argc, char *argv[]) +{ + printf("num = %d\n",num); + + myfun(); + + printf("num = %d\n",num); + + return 0; +} diff --git a/3_lesson/06_var_global_static/06_var_global_static.pro b/3_lesson/06_var_global_static/06_var_global_static.pro new file mode 100644 index 0000000..fc18d89 --- /dev/null +++ b/3_lesson/06_var_global_static/06_var_global_static.pro @@ -0,0 +1,6 @@ +TEMPLATE = app +CONFIG += console +CONFIG -= app_bundle +CONFIG -= qt + +SOURCES += main.c diff --git a/3_lesson/06_var_global_static/main.c b/3_lesson/06_var_global_static/main.c new file mode 100644 index 0000000..2794a58 --- /dev/null +++ b/3_lesson/06_var_global_static/main.c @@ -0,0 +1,21 @@ +#include + +// 定义一个静态全局变量 +// 静态全局变量只能在其定义的.c文件中任意位置使用,不能跨文件使用 +static int num; + +void myfun() +{ + num++; +} + +int main(int argc, char *argv[]) +{ + printf("num = %d\n", num); + + myfun(); + + printf("num = %d\n", num); + + return 0; +} diff --git a/3_lesson/07_var_local/07_var_local.pro b/3_lesson/07_var_local/07_var_local.pro new file mode 100644 index 0000000..fc18d89 --- /dev/null +++ b/3_lesson/07_var_local/07_var_local.pro @@ -0,0 +1,6 @@ +TEMPLATE = app +CONFIG += console +CONFIG -= app_bundle +CONFIG -= qt + +SOURCES += main.c diff --git a/3_lesson/07_var_local/main.c b/3_lesson/07_var_local/main.c new file mode 100644 index 0000000..fa779a9 --- /dev/null +++ b/3_lesson/07_var_local/main.c @@ -0,0 +1,24 @@ +#include + +// 定义一个局部变量 +// 在函数内部定义的,不加任何修饰的变量都是局部变量 +void myfun() +{ + int num = 100; + num++; + + printf("num = %d\n", num); + + return ; +} + +int main(int argc, char *argv[]) +{ + // 局部变量只能在定义的函数内部使用,生命周期相对较短,函数结束,局部变量就会释放 + // printf("num = %d\n", num); + myfun(); + myfun(); + myfun(); + + return 0; +} diff --git a/3_lesson/08_var_local_static/08_var_local_static.pro b/3_lesson/08_var_local_static/08_var_local_static.pro new file mode 100644 index 0000000..fc18d89 --- /dev/null +++ b/3_lesson/08_var_local_static/08_var_local_static.pro @@ -0,0 +1,6 @@ +TEMPLATE = app +CONFIG += console +CONFIG -= app_bundle +CONFIG -= qt + +SOURCES += main.c diff --git a/3_lesson/08_var_local_static/main.c b/3_lesson/08_var_local_static/main.c new file mode 100644 index 0000000..0e1c507 --- /dev/null +++ b/3_lesson/08_var_local_static/main.c @@ -0,0 +1,36 @@ +#include + +// 定义一个静态局部变量 +// 在函数内部定义的使用static修饰的变量就是静态局部变量 + +void myfun() +{ + // 如果普通局部变量不进行初始化,则默认是随机值 + // 如果静态局部变量不进行初始化,则默认是0 + int a; // 普通局部变量 + static int num; // 静态局部变量 + + printf("a = %d\n", a); + printf("num = %d\n", num); +} + +void myfun1() +{ + // 静态局部变量不会随着当前函数执行结束而释放空间,下次使用的还是之前的空间 + // 静态局部变量只会初始化一次 + static int num = 100; + num++; + + printf("num = %d\n", num); +} + +int main(int argc, char *argv[]) +{ + myfun(); + + myfun1(); + myfun1(); + myfun1(); + + return 0; +}