求教一个关于数组的问题
本帖最后由 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;
} P等于A或者B之后,就跟C没关系啦 68336016 发表于 2019-2-16 18:49
P等于A或者B之后,就跟C没关系啦
我ca,LZ想要的结果是把数组赋值给C,然后程序只是把指针改了一下。。 大数组有memcpy,小的自己写个循环 楼主应该好好理解一下指针的定义 68336016 发表于 2019-2-16 18:49
P等于A或者B之后,就跟C没关系啦
请教,那应该怎么弄? 本帖最后由 yiminglei_2 于 2019-2-18 15:51 编辑
怎么同一个问题又开了一贴。。。
https://www.amobbs.com/forum.php?mod=viewthread&tid=5706665&pid=10618918&page=1&extra=#pid10618918 rjx 发表于 2019-2-18 14:49
请教,那应该怎么弄?
正如楼上朋友跟你说的,你要熟悉指针用法。
p是指针,可以任意指向A,B,C,你就用这个p就行了,灵活,别用C这个数组,麻烦。
p=B后,pp p这样形势来访问就可以 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);
} p=C只是让p指向了数组C的地址,并不是p就变成C了。后面p又指向A,和C就没啥关系了。 zhugean 发表于 2019-2-18 16:40
ucharC={0};
uchar A[]={1,2,3};
uchar B[]={4,5,6};
正解来了。 9楼用memcpy函数的方法经试验是可行的。 不用p 直接用C就行 你只是在赋地址
页:
[1]