当前位置:首页 > c指针详解(1)
jia1(a,1);
printf(\
system(\ return 0; }
void jia1(int b[],int gs) {
int i;
for( i = 0 ; i < gs ; i++ ) b[i] += 1;
return ; }
与上面代码完全等价的一种写法是: 程序代码9-19
#include
void jia1(int *,int);
int main(void) {
int a[1]={3};
jia1(a,1);
printf(\
system(\ return 0; }
void jia1(int *b,int gs) {
int i;
for( i = 0 ; i < gs ; i++ ) b[i] += 1;;
return ; }
也就是说,类型描述形式为“int []”的形参“b” 就是一个指针,类型为“int *”。这个“b” 并不是数组名,因为数组名是常量,而形参显
然是一个变量(函数调用时获得实参的值),数组名占据“元素个数*元素尺寸”大小的内存,而形参“b”只占据指针类型大小的内存。
这给我们带来了一个启示,对于数组名可以做如下理解:比如 “int a[1]”;,“a”的类型有时是不完全类型 “int []”(“a”作为值使用时),有时是“int [1]”(“a”作为内存使用)。而前者实际上就是指针。
共分享92篇相关文档