C语言 如何在将结构变量赋给不带箭头运算符的指针后访问结构中的数组

zvms9eto  于 2022-12-02  发布在  其他
关注(0)|答案(1)|浏览(106)
#include <stdio.h>

struct dog
{
    int name[10];
    char breed[10];
    int age;
    char color[10];
};

int main()
{
struct dog frodo;
struct dog **ptr=&frodo.name;

for(int i=0;i<10;i++)
frodo.name[i]=i;

for(int i=0;i<10;i++)
printf(" frodo.name[%d]%d\n",i,frodo.name[i]);

for(int i=0;i<10;i++)
printf(" ptr =%d\n",ptr[i]);
}

我尝试使用双指针,但在打印值时索引不匹配。
操作员:来源名称[0]0来源名称[1]1
指针=0指针=2

2ul0zpep

2ul0zpep1#

我希望ptr应该是指向frodo.name的第一个字节的指针,frodo.name是10个char的数组。因此,ptr的类型应该是char*。使用:

char *ptr=&frodo.name[0];

相关问题