函数参数与结构体练习.pptVIP

  • 0
  • 0
  • 约6.51千字
  • 约 30页
  • 2021-12-11 发布于广东
  • 举报
Programming in C 西安电子科技大学计算机学院 - School of Computer Science Engineering, Xidian University, China * 函数参数与结构体练习 第一页,共30页 2.为什么会出现if-else不匹配? 这种错误的原因可能比较复杂;总的原则是: (1)有一个else必有一个if,所以首先在数量上要匹配 (2)逻辑关系要合理;若执行的是复合语句,不要漏掉复合语句标志{ }。 例如: if (xy) t=a; a=b; b=t; else t=m; 编译时就会提示出错信息,正确的写法: if (xy) { t=a; a=b; b=t; } else t=m; (3)若条件不成立时要求执行的语句有多条,else后必须为复合语句。 例如:if (xy) {t=a; a=b; b=t;} else {t=m; m=n; n=t;} C程序中常见问题-if语句 第二页,共30页 C程序中常见问题-定长数组与变长数组 定义定长数组: int a[5]; 变长数组: int n; int a[n]; 定义数组并初始化数组元素: int a[5] = {1,2,3,4,5}; 访问数组元素(写、读): for (i = 0; i 5; i++) a[i] = i*2; for (i = 0; i 5; i++) printf(%d ,a[i]); 变长数组: int n = 20; int a[n]; C99标准规定:定义数组时,其尺寸可以不确定,但不是所有的编译器都支持该特性 第三页,共30页 关于函数 函数是具有名字的语句序列,使用函数可改善程序的结构,也用于将多处重复使用的代码编写为函数,减少代码量 函数定义和函数调用 形式参数与实际参数 参数传递 实际参数向形式参数传值 实参与形参个数相等,类型一致,按顺序一一对应 函数的返回值 局部变量与全局变量 变量的作用域与生存期 static extern 第四页,共30页 #include stdio.h long sum(int a, int b); long factorial(int n); void main() { int n1,n2; long a; scanf(%d,%d,n1,n2); a = sum(n1,n2); printf(a=%1d,a); } long sum(int a,int b) { long c1,c2; c1 = factorial(a); c2 = factorial(b); return(c1+c2); } long factorial(int n) { long rtn=1; int i; for(i=1;i=n;i++) rtn*=i; return(rtn); } long sum(int a, int b); long factorial(int n); 文件包含编译预处理命令 函数原型说明 函数定义 函数调用 函数调用 函数返回值 形参 实参 第五页,共30页 函数参数 数组作为函数参数 结构体数据作为函数参数 第六页,共30页 传值调用 函数调用执行时,将实际参数的值传递给形式参数,这个传递过程是单向的 void swap(int x,int y) { int t; t = x; x = y; y = t; } int main() { int a,b,c; a = 3; b = 8; c = 2; if (ab) swap(a,b); if (ac) swap(a,c); if (bc) swap(b,c); printf(%d %d %d,a,b,c); return 0; } 第七页,共30页 传值调用 函数调用执行时,将实际参数变量的地址传递给形式参数 void swap(int *x,int *y) { int t; t = *x; *x = *y; *y = t; } main() { int a,b,c; a = 3; b = 8; c = 2; if

文档评论(0)

1亿VIP精品文档

相关文档