我必须更正一个现有的 C 文件,它有一堆格式说明符编译错误。谁能说出以下情况的正确格式说明符:
u_char(*) [10](我试过 %s,但没有用)char(*) [10](我尝试了 %s 和 %c,但没有成功)
谢谢。
我必须更正一个现有的 C 文件,它有一堆格式说明符编译错误。谁能说出以下情况的正确格式说明符:
u_char(*) [10](我试过 %s,但没有用)
char(*) [10](我尝试了 %s 和 %c,但没有成功)
谢谢。
两者都是指向数组的指针,因此您可以取消引用它们以成为数组,从而衰减为指向第一个元素的指针:
char arr[10];
char (*pa)[10] = &arr;
printf("%s", *pa); // or &((*pa)[0])
把它拼出来:is 的类型,ispa的char(*)[10]类型,后者衰减为 a的值(等于)。*pachar[10]char*&((*pa)[0])&(arr[0])
我同意Kerrek,但我认为
printf ("%s", *pa);
可能无法按原样工作,因为我们不确定最后是否有 NULL 字符。所以要打印,我们可以执行以下操作
char temp[10+1];
memcpy(temp, *pa, 10);
temp[10] = '\0';
printf("%s",temp);