Riz*_*eem 3 c arrays pointers function
int *insertZeroPosition(int *pf,int n,int k){
int *ptr=(int *)calloc(n+1,sizeof(int));
int i;
ptr[0]=k;
for (i=1;i<n+1;i++,pf++){
ptr[i]=*pf;
}
return ptr;
}
Run Code Online (Sandbox Code Playgroud)
为什么它ptr[i]=*pf而不是*ptr[i]=*pf即使 ptr 是一个指针?
语法p[i]等价于*(p + i). 即使使用数组下标语法,取消引用仍然存在。
C 标准,第 6.5.2.1.2 节:
下标运算符[]的定义是E1[E2]等同于(*((E1)+(E2)))。
您可以根据需要重写代码*(ptr + i) = *pf;没有区别。
| 归档时间: |
|
| 查看次数: |
114 次 |
| 最近记录: |