函数,数组,指针,gdb调试器
1.函数定义 如果明确指定返回类型,默认为int
参数传递:实参对形参的参数传递是单向的,实参只是把自己的值赋给形参。
形参的值在函数里的改变不会影响实参。
函数返回类型与return 不一致,return 会自动转换成返回类型。
函数可以返回一个指针不能返回一个数组。
函数体如果写在main之后,在main之前需要先申明。
函数可以嵌套调用,但是不可以嵌套定义。
2.变量访问控制和存储类型
变量访问控制:局部变量和全局变量。
存储类型:静态存储变量(形参,函数内的非static变量),动态存储变量(全局变量,函数内的static变量)
#include<stdio.h> void function(){ ; ; a++; b++; printf("a=%d,b=%d",a,b); } main(){ function(); function(); function(); } output: a=,b= a=,b= a=,b=
4 .eg: file1.c中的变量可以被file2.c使用 ,file2.c中的函数可以被file1.c使用,但是需要用extern关键词事先申明
//file1.c #include<stdio.h> extern long power(int); ; int main(){ , total; total = power(n); printf("2^10 total is %d",total); ; } //file2.c #include<stdio.h> extern A ; long power(int n){ ; int i ; ; i <=n ; i++){ total = total * A; } return total; } //编译命令:gcc file1.c file2.c -o file //执行命令:./file output : ^ total