confuss 发表于 2014-10-29 20:28:03

c语言关于链表赋值问题

本帖最后由 风之残月 于 2014-11-9 22:33 编辑

struct node
{
char a;
struct node *next;
};
我定义了一个结构体,想把char b里面的元素赋值给a里面去,可是创建链表p->a= b,这句话不能实现,

请问我该怎么进行传值的,其他的代码无误,这是一部分。

小白在线求助

风之残月 发表于 2014-10-29 20:28:04

p->a 的值是地址, 而b是一个数组b里面的一个值,不能这样赋值
要赋值的话可以使用for
for (int i=0; i<10; ++i)
{
      p->a = b;
}

或者使用字符串拷贝函数,如strcpy(a, b);

aix0321 发表于 2014-10-29 22:15:38

本帖最后由 aix0321 于 2014-10-29 22:18 编辑

p->a是数组a的首地址,把数组b的元素赋给一个地址是什么意思呢?
要把数组b的元素赋给数组a可以用strcpy函数,strcpy(p->a, b);,要包含头文件string.h
或者把p->a = b;放到for循环里,循环10次即可~

confuss 发表于 2014-10-29 22:28:36

aix0321 发表于 2014-10-29 22:15
p->a是数组a的首地址,把数组b的元素赋给一个地址是什么意思呢?
要把数组b的元素赋给数组a可以用strcpy函 ...

恩恩,我没仔细看,实在是丢人,我想问一下,我怎么给结构体里面的成员char a初始化为0呢?

aix0321 发表于 2014-10-29 22:47:02

本帖最后由 aix0321 于 2014-10-30 13:56 编辑

confuss 发表于 2014-10-29 22:28
恩恩,我没仔细看,实在是丢人,我想问一下,我怎么给结构体里面的成员char a初始化为0呢?
初始化为0?用到成员a的时候再初始化呗,为什么要初始化为0呢?要是初始化为字符'0',用char a = {'0'},要是初始化为数字0,就相当于初始化为'\0',用char a = {0}。

hewi 发表于 2014-10-29 22:49:12

confuss 发表于 2014-10-29 22:28
恩恩,我没仔细看,实在是丢人,我想问一下,我怎么给结构体里面的成员char a初始化为0呢?

首先必须明确的是你想初始化为0还是‘0’,二者不同,若是前者,推荐使用以下语句:
char a = {0} ;
若是后者
char a = {'0'} ;

大个的糖果 发表于 2014-10-30 15:00:26

fireofsun 发表于 2014-10-30 20:44:30

a是数组名,你用数组给数组名赋值肯定不行啊

帅哥星 发表于 2014-11-2 19:23:51

页: [1]
查看完整版本: c语言关于链表赋值问题