《高级语言程序计教学课件》第8章4次课.pptVIP

  • 3
  • 0
  • 约7.61千字
  • 约 26页
  • 2018-12-02 发布于浙江
  • 举报

《高级语言程序计教学课件》第8章4次课.ppt

《高级语言程序计教学课件》第8章4次课

* 指针运算符 ——取变量或存储单元的地址 * —— 取指针所指向的单元(变量) 结论: *pt相当于a (*pt)++相当于a++ *pt=a=pt *a=*pt=a a a pt *pt a=1; 例: int a, *pt; pt=a; *pt=1; * -*- *p相当于变量a 指针与变量 int a, * p ; p=a; * 【例8-1】编写一个的子程序,子程序的功能为交换两个变量的值 #include stdio.h void swap(int x, int y); void main(void) { int a, b; printf(请输入交换的数值:); scanf(%d%d, a, b); printf(交换前a=%d,b=%d\n, a, b); swap(a, b); printf(交换后a=%d,b=%d\n, a, b); } void swap(int x, int y) { int temp; temp = x; x = y; y = temp; } 单向值传递 * 【例8-1】编写一个的子程序,子程序的功能为交换两个变量的值(改进) #include stdio.h void swap(int *x, int *y); void main() { int a, b; scanf(%d%d, a, b); printf(a=%x,b=%x\n, a, b); printf(调用前:a=%d,b=%d\n, a, b); swap(a, b); printf(调用后:a=%d,b=%d\n, a, b); } 地址传递 * void swap(int *x, int *y) { int t; printf(\n-----swap-----\n); printf(x=%x,y=%x\n, x, y); t = *x; *x = *y; *y = t; printf(-----swap-----\n\n); } * 例 编写函数求出二维整型数组中元素的最大值及其下标号 #include stdio.h #define M 3 #define N 2 int maxarray(int a[M][N], int m, int n, int *pmaxi, int *pmaxj); void main() { int a[M][N]={1,2,3,4,5,6}; int max, maxi, maxj; max = maxarray(a, M, N, maxi, maxj); printf(“a[%d][%d]=%d”, max, maxi, maxj); } * int maxarray(int a[M][N], int m, int n, int *pmaxi, int *pmaxj) { int i, j, max = a[0][0]; for(i=0; im; i++) for(j=0; jn; j++) { if(maxa[i][j]) { max = a[i][j]; *pmaxi = i; *pmaxj = j; } } return max; } * -*- a[i] *(a+i) p[i] *(p+i) 数组元素表示法 数组元素地址表示法 a[i] a+i p[i] p+i 指针与一维数组 int a[10], * p = a; * 下标法 main ( ) {int a[10]; i; for (i=0;i10;i++) scanf(%d,a[i]); for (i=0;i10;i++) printf(%d,a[i]); } 数组名计算地址法 main ( ) {int a[10];i; for (i=0; i10; i++) scanf(%d, a+i); for (i=0; i10;

文档评论(0)

1亿VIP精品文档

相关文档