C语言 数组 指针 初始化,该如何解决
C语言 数组 指针 初始化
小弟最近在学习C语言,看别人代码,不知道以下2种方式有没有区别,恳请大神指教下~~~
uchar n=0;
uchar table[MAX]={0,0,0,0,0,0};
uchar Number;
uchar *ptr=table;
方式1:(*ptr++)=Number; 方式2:*(ptr+n++)=Number;
按我自己的理解,方式1自增,那么这个指针ptr后面就不能指向table了,使用方式2的 话,ptr始终指向table数组,不知道我的理解对不对?还有没有别的什么区别?我们常见一般是采取哪种方式呢?求拍醒~~~
------解决思路----------------------
方式1自增,它仍指向table,不过指向的是table数组的第2个元素。
方式2,没有影响ptr的值,它仍指向table数组的首地址。
------解决思路----------------------
楼主理解的很对,就是这样子的,
方法2要多个变量,方法一更加简洁,很多时候,指针在迭代之后就没有用了。
小弟最近在学习C语言,看别人代码,不知道以下2种方式有没有区别,恳请大神指教下~~~
uchar n=0;
uchar table[MAX]={0,0,0,0,0,0};
uchar Number;
uchar *ptr=table;
方式1:(*ptr++)=Number; 方式2:*(ptr+n++)=Number;
按我自己的理解,方式1自增,那么这个指针ptr后面就不能指向table了,使用方式2的 话,ptr始终指向table数组,不知道我的理解对不对?还有没有别的什么区别?我们常见一般是采取哪种方式呢?求拍醒~~~
------解决思路----------------------
方式1自增,它仍指向table,不过指向的是table数组的第2个元素。
方式2,没有影响ptr的值,它仍指向table数组的首地址。
------解决思路----------------------
楼主理解的很对,就是这样子的,
方法2要多个变量,方法一更加简洁,很多时候,指针在迭代之后就没有用了。