第八章:指针03
让编程改变世界
Change the world by program
源码分析
输出数组中的全部元素
假设有一个a数组,整型,有10个元素。要输出各元素的值有三种方法: (1) 下标法 (2) 通过数组名计算数组元素地址,找出元素的值。 (3) 用指针变量指向数组元素。 大家给分析分析,翻炒翻炒~ [codesyntax lang="c"]#include <stdio.h> void main() { int *p, i, a[10]; p = a; for( i=0; i < 10; i++ ) { scanf("%d", p++); } printf("n"); for( i=0; i < 10; i++, p++ ) { printf("%d", *p); } }[/codesyntax]
用数组名作函数参数
在第8章中介绍过可以用数组名作函数的参数 如: [codesyntax lang="c"]void f(int arr[], int n) { ……… ……… } void main() { int array[10]; …… …… f(array, 10); }[/codesyntax] void f(int arr[], int n) 但在编译时是将arr按指针变量处理的,相当于将函数f的首部写成 f(int *arr, int n) 以上两种写法是等价的。 需要说明的是:C语言调用函数时虚实结合的方法都是采用“值传递”方式,当用变量名作为函数参数时传递的是变量的值,当用数组名作为函数参 数时,由于数组名代表的是数组首元素地址,因此传递的值是地址,所以要求形参为指针变量。