[c专家编程学习] 深入数组1
什么时候数组和指针相同:
数组: 1. 声明 (1) extern, 如 extern char a[]; 不能改写成指针的形式
(2) 定义, 如char a[10]; 不能改写成指针的形式
(3) 函数的参数,如func(char a[]); 你可以随自己喜欢, 选择数组形式或者是指针形式
2. 在表达式中使用: 如 c = a[i];你可以随自己喜欢, 选择数组形式或者是指针形式
然而,数组和指针在编译器处理时是不同的,在运行时的表示形式也是不一样的,并可以产生不同的代码。对编译器而言,一个数组就是一个地址,一个指针就是一个地址的地址。
什么时候数组和指针相同:
数组: 1. 声明 (1) extern, 如 extern char a[]; 不能改写成指针的形式
(2) 定义, 如char a[10]; 不能改写成指针的形式
(3) 函数的参数,如func(char a[]); 你可以随自己喜欢, 选择数组形式或者是指针形式
2. 在表达式中使用: 如 c = a[i];你可以随自己喜欢, 选择数组形式或者是指针形式
然而,数组和指针在编译器处理时是不同的,在运行时的表示形式也是不一样的,并可以产生不同的代码。对编译器而言,一个数组就是一个地址,一个指针就是一个地址的地址。