求助:还是数组的问题

2019-07-21 05:12发布

本帖最后由 rjx007 于 2019-2-18 14:26 编辑

继续诚求解答。先谢谢各位高手。
有3个数组,其中C数组为待赋值的数组,另两个已知的数组A和B里各有100个不相同的元素,按给定的条件,使C数组能得到不同的值,希望能用指针的方法解决此问题。

uchar  C[100]={0};
uchar  A[100]={100个已知元素};
uchar  B[100]={另外100个不同的已知元素};


if(PIND.4==1)
{
       使C数组等于A;
}
else if(PIND.4==0)
{
      使C数组等于B;
}

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
9条回答
wangmingwei093
1楼-- · 2019-07-21 10:14
定义一个指针,指向A数组,然后通过指针给数组赋值,uchar *p = C, *p++ = A[i],不知道是不是你说的这个意思?
rjx007
2楼-- · 2019-07-21 14:51
本帖最后由 rjx007 于 2019-2-18 15:54 编辑

谢楼上,这样可以了。
这样问题得到解决,但不知是不是最好的办法.

uchar  C[100]={0};
uchar A[100]={100个已知元素};
uchar B[100]={另外不同的100个已知元素};
uchar *p;
uchar i;

if(PIND.4==1)
{
     for(i=0;i<100;i++)  { *p++=A; }
}
else if(PIND.4==0)
{
      for(i=0;i<100;i++)  { *p++=B; }
}
rjx007
3楼-- · 2019-07-21 15:29
 精彩回答 2  元偷偷看……
edmund1234
4楼-- · 2019-07-21 21:07
你的目的不明确, 是想拷贝A或B到C? 还是只是用C来做判断, 无需通过修改C来改变A或B?
如果是后者, C不需要定义为数组, 而是定义为指针

uchar  * C;
uchar A[100]={100个已知元素};
uchar B[100]={另外不同的100个已知元素};

if(PIND.4==1)
{
     C=A;
}
else if(PIND.4==0)
{
     C=B;
}
rjx007
5楼-- · 2019-07-22 01:21
C必须为数组,在不同条件下,将A或B的值赋予C.
edmund1234
6楼-- · 2019-07-22 02:10
本帖最后由 edmund1234 于 2019-2-18 17:42 编辑
rjx007 发表于 2019-2-18 17:23
C必须为数组,在不同条件下,将A或B的值赋予C.

C是可以当成数组来用的,
比如 abc = C[0x12];
如果前面的判诉是C=A;
那么 C[0x12] 是等于A[0x12]的



一周热门 更多>