首页 > 解决方案 > 如何在结构中使用指针?

问题描述

我在打印结构元素时使用了指针,但它在打印语句中没有使用指针,但我们不应该使用指针从变量地址中收集元素,为什么它在结构情况下不同,在字符串中也不同。谁能告诉我这是为什么?

#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);

}

标签: cstructure

解决方案


    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);

推荐阅读