求教一个char数组的问题
我刚接触C,对于char数组和做字符串的时候长度有点不解下面代码为什么是那样的?是不是传地址指针的时候,sizeof()得到的是该地址所占用的空间大小呢?
如果是的话,我想把char a[]里的字符串赋给 char b[] 应该怎样写呢
求指点迷津。
程序代码:
void reverseCopy(char *a,char *b); int main() { char a[] ="abcdefghigklmnopqrstuvwxyz"; char b[27]; printf("%d,%d",sizeof(a),sizeof(b)); reverseCopy(&a,&b); printf("%s",b); getch(); } // 反转复制 void reverseCopy(char *a,char *b) { int i; int j=0; if(sizeof(a)!=sizeof(b)) { printf("The wrong length!"); return; } printf("The array length is %d",sizeof(a));// 输出4 为什么? for(i=sizeof(a)-1;i>=0;i--) { b[j]=a[i]; j++; } }