我在打印结构元素时使用了指针,但它在打印语句中不使用指针工作,但我们不应该使用指针从变量地址收集元素,为什么它在结构情况下不同,在字符串中也不同。谁能告诉我这是为什么?
#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);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句