我为这个愚蠢的问题提前道歉!
这是我的结构def:
struct vcard {
char *cnet;
char *email;
char *fname;
char *lname;
char *tel;
};
Run Code Online (Sandbox Code Playgroud)
我试图用函数vcard_show(vcard*c)打印这个结构的表示,但编译器抛出一个警告:
void vcard_show(struct vcard *c)
{
printf("First Name: %c\n", c->fname);
printf("Last Name: %c\n", c->lname);
printf("CNet ID: %c\n", c->cnet);
printf("Email: %c\n", c->email);
printf("Phone Number: %c\n", c->tel);
}
Run Code Online (Sandbox Code Playgroud)
编译时:"警告:格式'%c'需要类型'int',但参数2的类型为'char*'"
%c不是char*的符号吗?
小智 18
你想使用%s,这是为字符串(char*).%c用于单个字符(char).
*类型后面的星号使其成为指向类型的指针.所以char*实际上是一个指向角色的指针.在C中,通过将指针传递给字符串的第一个字符来传递字符串.字符串的结尾是通过将字符串的最后一个字符后面的字节设置为NULL(0)来确定的.