C语言中、char (*pa)[5];和char *pa[5]有什么区别

2025-02-22 15:12:31
推荐回答(3个)
回答1:

指针数组:int *pa[5]; //它是五个指针。这五个指针组成一个数组

数组指针:int (*pa)[5]; // pa是一个指针变量。它指向一个有四个数组 void main()
{
int i=0;char a[5];char b[5];//方法一:
char (*pa)[5];
//定义数组指针、
printf("请输入一个字符串\n");
scanf("%s",a);
pa=&a;
printf("\n");
for(i=0;i{
b[i]=(*pa)[i]; printf("%c\n",b[i]);
}
b[strlen(a)]='\0';printf("%s\n",b);}

回答2:

char (*pa)[5];不是定义指针数组,是用来定义指向一组数组的指针变量char *pa[5]才是定义指针数组

回答3:

pa=&a;实际上是将指针a的地址赋给了pa,或者说是将指针的指针赋给了pa