我在打印结构元素时使用了指针,但它在打印语句中不使用指针的情况下工作,但我们不应该使用指针从变量地址收集元素,为什么它在结构情况下不同,在字符串中也不同。谁能告诉我这是为什么?
#include <stdio.h>
int main(){
struct books{
char name[10];
int page;
};
struct books b1={"book1",1};
struct books *ptr;
ptr=&b1;
printf("%s %d",ptr->name,ptr->page);
}
最佳答案
printf("%s %d",*ptr->name,*ptr->page);
是错误的。 A->B
表示 (*A).B
。你应该这样做
printf("%s %d",ptr->name,ptr->page);
或
printf("%s %d",(*ptr).name,(*ptr).page);
关于c - 如何在结构体中使用指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66707673/