rjx 发表于 2019-2-16 18:43:41

求教一个关于数组的问题

本帖最后由 rjx 于 2019-2-16 18:45 编辑

有两个数组A和B,其内部的元素不同,想要在不同的条件下,第三个数组C分别等于A和B 。我用数组写的,结果不行,数组C好像没有得到想要的值。请教应怎么搞。

ucharC={0};
uchar A[]={1,2,3};
uchar B[]={4,5,6};
uchar *p=C;

if(PIND.4==1)
{
      p=A;
}
else if(PIND.4==0)
{
      p=B;
}

68336016 发表于 2019-2-16 18:49:51

P等于A或者B之后,就跟C没关系啦

wye11083 发表于 2019-2-16 18:52:31

68336016 发表于 2019-2-16 18:49
P等于A或者B之后,就跟C没关系啦

我ca,LZ想要的结果是把数组赋值给C,然后程序只是把指针改了一下。。

mcu5i51 发表于 2019-2-16 19:14:57

大数组有memcpy,小的自己写个循环

nanfang2000 发表于 2019-2-16 21:58:42

楼主应该好好理解一下指针的定义

rjx 发表于 2019-2-18 14:49:56

68336016 发表于 2019-2-16 18:49
P等于A或者B之后,就跟C没关系啦

请教,那应该怎么弄?

yiminglei_2 发表于 2019-2-18 15:38:46

本帖最后由 yiminglei_2 于 2019-2-18 15:51 编辑

怎么同一个问题又开了一贴。。。

https://www.amobbs.com/forum.php?mod=viewthread&tid=5706665&pid=10618918&page=1&extra=#pid10618918

68336016 发表于 2019-2-18 16:11:29

rjx 发表于 2019-2-18 14:49
请教,那应该怎么弄?

正如楼上朋友跟你说的,你要熟悉指针用法。
p是指针,可以任意指向A,B,C,你就用这个p就行了,灵活,别用C这个数组,麻烦。

p=B后,pp   p这样形势来访问就可以

zhugean 发表于 2019-2-18 16:40:23

ucharC={0};
uchar A[]={1,2,3};
uchar B[]={4,5,6};

if(PIND.4==1)
{
      memcpy(C,A,3);
}
else if(PIND.4==0)
{
      memcpy(C,B,3);
}

hyghyg1234 发表于 2019-2-18 17:39:25

p=C只是让p指向了数组C的地址,并不是p就变成C了。后面p又指向A,和C就没啥关系了。

hyghyg1234 发表于 2019-2-18 17:40:07

zhugean 发表于 2019-2-18 16:40
ucharC={0};
uchar A[]={1,2,3};
uchar B[]={4,5,6};


正解来了。

rjx 发表于 2019-2-19 10:46:38

9楼用memcpy函数的方法经试验是可行的。

xyf1993 发表于 2019-2-19 15:32:20

不用p 直接用C就行

desertsailor 发表于 2019-2-19 22:49:03

你只是在赋地址
页: [1]
查看完整版本: 求教一个关于数组的问题