c - 如何在结构体中使用指针?

标签 c structure

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

#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/

相关文章:

python - 将类表示为字典或列表

c++ - 所有按钮都应该包含对 MVC 代码 (C++) 中的 Controller 的引用吗?

mysql - 我如何像格式化程序一样构造 SQL 代码,以使其通过 SQL 命令更好地读取到数据库

c - 解释gdb段错误

java - UnsatisfiedLinkError: 无法从加载程序加载 X

c - Matlab 在使用某些数据运行 mex 函数时崩溃

c++ - 使用单个命令进行结构初始化(零值)

c - C 中 union 内的结构

c - FILE I/O 和使用其中的数据出现问题

在编译时检查常量变量的值