指针在C编程中有结构问题

时间:2016-02-09 08:35:34

标签: c pointers struct

我遇到指针问题。 这是我想要的一个例子

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;

3 个答案:

答案 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