【发布时间】:2011-11-08 23:19:01
【问题描述】:
我创建了 ptr 作为指向 5 个字符数组的指针。
char (*ptr)[5];
为其分配了一个字符数组的地址。
char arr[5] = {'a','b','c','d','e'};
ptr = &arr;
使用指针 ptr 可以访问此数组中的 char 值吗?
printf("\nvalue:%c", *(ptr+0));
它不打印值。
在我的理解 ptr 将包含数组的基地址,但它实际上指向完整数组所需的内存(即 5 个字符)。因此,当 ptr 增加时,它会向前移动sizeof(char)*5 字节。那么是不是不能使用这个指向数组的指针来访问数组的值呢?
【问题讨论】:
-
请记住接受对您的问题最有帮助的正确答案。您接受旁边带有勾号的问题。
-
大家,请在发布答案之前阅读此c-faq.com/aryptr/ptrtoarray.html。