A
数组定义,不能用数组头做自增运算
如
int a[10]={0};
可以用a[i],或者*(a+i)循环读取里面的元素,但是不能用 *a++ 自增调用
B
当数组作为函数参数进行传递时,该数组自动退化为同类型指针。对应的指针可自增
如
void Func(char a[100])
{
printf("%d\n",sizeof(a));
}
C
堆(heap)内存的分配也一样
如
int *a=(int *)malloc(10*sizeof(int));
可以用a[i],或者*(a+i)循环读取里面的元素,但是不能用 *a++ 自增调用
错误代码
char *function (char *s) //仅做实验 其实就是void strcpy(char *,char *)的实现
{
char *w=(char *)malloc(10*sizeof(char));
memset(w,0,10*sizeof(char));
while(*w++=*s++)
;
return w;
}
可以改为
char *function(char *s)
{
char *w=(char *)malloc(10*sizeof(char));
memset(w,0,10*sizeof(char));
int len=strlen(s);
int k=0;
while(len--)
*(w+k)=*s++,k++;
*(w+k)=0;
return w;
}
阅读(172) | 评论(0) | 转发(0) |