user-0 提问: C [Error] expected primary-expression before 'struct' 求助。。。

回复:
user: user-1
content: 引用 1 楼 yfqvip 的回复:#include <stdio.h>  struct names { char * fname; char * lname; };  void getinfo(struct names& accountant);  int main(void){ struct names accountant={"xingyue","yehun"}; printf("The accountant's name is %s %s",accountant.fname,accountant.lname); getinfo(accountant); // 传参时只写参数名即可 printf("The accountant's name is %s %S",accountant.fname,accountant.lname); } void getinfo(struct names& accountant){    // 要用引用，不认值传不出来   printf("please enter your first name");   gets(accountant.fname);   printf("please enter your last name"); gets(accountant.lname); } 即使是使用引用，那么fname和lname也是需要分配空间之后才能使用

user: user-0
content: 好吧，谢谢!

user: user-1
content: 引用 6 楼 yuexiafeihong 的回复:调用参数的时候不能写类型吗？ 调用参数不需要参数类型，只需要实参名。

user: user-1
content: 引用 4 楼 yuexiafeihong 的回复:还是不懂 为啥要用引用呢，值为啥传不过来呢？ 引用是C++的使用，和C语言的传地址是类似的。

user: user-0
content: 赵老师啊，能直接说明白点嘛 差在哪里啊？

user: user-0
content: 我就想看看，在野指针初始化后，还能找到他们，再给他们赋值吗？ 程序运行不了233333

user: user-0
content: 调用参数的时候不能写类型吗？

user: user-2
content: 通过编译和运行没错相差十万八千里！

user: user-0
content: #include <stdio.h>  struct names { 	char * fname; 	char * lname; };  void getinfo(struct names  accountant);  int main(void){ 	struct names accountant={"xingyue","yehun"}; 	printf("The accountant's name is %s %s",accountant.fname,accountant.lname); 	getinfo(accountant); 	printf("The accountant's name is %s %s",accountant.fname,accountant.lname); } void getinfo(struct names  accountant){ 	  printf("please enter your first name"); 	  gets(accountant.fname); 	  printf("please enter your last name"); 	gets(accountant.lname); } 我没用&，只是把getinfo的参数改了下就能通过编译了。。。 为啥啊

user: user-0
content: 还是不懂 为啥要用引用呢，值为啥传不过来呢？

user: user-1
content: #include <stdio.h> #include <stdlib.h>  struct names {     char * fname;     char * lname; };  void getinfo(struct names *);  int main(void) {     struct names accountant={"xingyue","yehun"};     printf("The accountant's name is %s %s\n",accountant.fname,accountant.lname);     getinfo(&accountant);     printf("The accountant's name is %s %s\n",accountant.fname,accountant.lname);      free(accountant.fname);     free(accountant.lname);      return 0; }  void getinfo(struct names *accountant) {     printf("please enter your first name");     accountant->fname = (char *)malloc(sizeof(char) * 32);     if (!accountant->fname)         exit(0);     gets(accountant->fname);     printf("please enter your last name");     accountant->lname = (char *)malloc(sizeof(char) * 32);     if (!accountant->lname)         exit(0);     gets(accountant->lname); }  参考一下吧；  两个问题： 第一个是需要传account的地址才能获取getinfo输入的新的fname和lname； 第二个问题account的fname和lname都是野指针，没有给其分配有效的空间，所以可以考虑使用malloc为其分配有效的空间。

user: user-3
content: 不认==不然

user: user-3
content: #include <stdio.h>  struct names { char * fname; char * lname; };  void getinfo(struct names& accountant);  int main(void){ struct names accountant={"xingyue","yehun"}; printf("The accountant's name is %s %s",accountant.fname,accountant.lname); getinfo(accountant); // 传参时只写参数名即可 printf("The accountant's name is %s %S",accountant.fname,accountant.lname); } void getinfo(struct names& accountant){    // 要用引用，不认值传不出来   printf("please enter your first name");   gets(accountant.fname);   printf("please enter your last name"); gets(accountant.lname); }