如何在C

时间:2018-12-30 14:43:44

标签: c struct

大家好,我是C语言的新手,我想知道是否可以像下面这样将结构成员分配给C语言的变量

struct User
{
   int ID;
   char name[10]; 

}users[10];

int uid,
char userName;

uid = users[i].ID;
userName = user[i].name;

试图做类似上面的事情,我得到一个警告,“赋值使指针从整数开始而没有强制转换” 并且当我运行时进行编译,因为这是一个警告而不是错误,所以它将运行,但是随后我无法打印uid或userName的值,系统将退出; 请问我知道很多人会问,但我不能直接访问结构成员并打印它吗,我知道我可以那样做,但是我真正想做的就是看一种将值赋给变量的方法

1 个答案:

答案 0 :(得分:0)

有问题的陈述是

userName = user[i].name;
  |            |
 char type   char array type

首先将userName声明为 character 变量,而字符变量不能容纳char arrayuser[i].name

更改此

char userName;

char userName[10];

,然后使用strcpy()strncpy()复制。对于例如

strcpy(userName, user[i].name);