数组指针作为形参传递

来源:互联网 发布:python f.close 编辑:程序博客网 时间:2024/06/05 22:58

当数组作为函数形参时,数组的地址可以用做函数调用的实参。

可以通过数组地址的传递,在函数内可以对该数组进行访问和修改。

eg:

#include <stdio.h>#define SIZE 10/* 形式1 */void func_1(const char a[SIZE]) {    printf("获取数组的第一个元素=%c\n", a[0]);    printf("char a[SIZE]: %d\n", sizeof(a));/* 输出形参的字节长度 */}void func_2(const char a[10000]) {/* 数组容量是否符合,不影响形参传递 */    printf("获取数组的第一个元素=%c\n", a[0]);    printf("char a[10000]: %d\n", sizeof(a));/* 输出形参的字节长度 */}/* 形式2 */void func_3(const char a[]) {    printf("获取数组的第一个元素=%c\n", a[0]);    printf("char a[]: %d\n", sizeof(a));/* 输出形参的字节长度 */}/* 形式3 */void func_4(const char * a) {    printf("获取数组的第一个元素=%c\n", a[0]);    printf("char * a: %d\n", sizeof(a));/* 输出形参的字节长度 */}/*    测试数组的形参传递:    以上三种形式传递一位数组形参,对于编译器来说,    最后都处理为char型指针,实质上都是一样的。    写成形式1可以提高程序的可读性。 */int main(void){    char a_char[SIZE] = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j'};    char * p_char = a_char;    /* 函数调用 */    func_1(a_char);    func_2(p_char);    func_3(a_char);    func_4(p_char);}
运行结果: