我提前为这个愚蠢的问题道歉!
这是我的结构定义:
struct vcard {
char *cnet;
char *email;
char *fname;
char *lname;
char *tel;
};
我正在尝试使用函数 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);
}
编译时:“警告:格式‘%c’需要类型‘int’,但参数 2 具有类型‘char *’”
%c 不是 char* 的符号吗?
你想使用%s
,适用于字符串 (char*)。%c
适用于单个字符 (char)。
一个星号*
在类型使其成为指向类型的指针之后。所以char*
实际上是一个指向字符的指针。在 C 中,字符串是通过将指针传递给字符串的第一个字符来进行引用传递的。通过将字符串最后一个字符之后的字节设置为 NULL (0) 来确定字符串的结尾。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)