我遇到指针问题。 这是我想要的一个例子
struct Book
{
char name[10];
int price;
}
int main()
{
struct Book b[10]; //Array of structure variables
struct Book* p; //Pointer of Structure type
p = &b; --- HERE is the ERROR
}
这是错误部分
p = &b;
答案 0 :(得分:1)
b
是一个数组,它本身可以衰变为指针变量。通过编写&b
,您实际上获取该指针的地址,然后最终得到指向指针的指针。只需编写p = b
即可。
答案 1 :(得分:0)
试试这个。我没有检查,但这应该工作。
p = b;
现在如果你想迭代你的结构数组,那么就这样做
// Example program
#include <stdio.h>
struct Book
{
char name[10];
int price;
};
int main()
{
struct Book b[10]; //Array of structure variables
struct Book* p; //Pointer of Structure type
p = b;
int i = 0;
for(i = 0 ; i<10; i++)
{
printf("Price : %d\n", (p+i)->price);
}
}
答案 2 :(得分:-2)
b本身就是一个指针。在这里,您可以将数组视为指针。因此,请使用p=b
代替p=&b