这是交易。我有一个大字符数组,正在尝试对其进行操作。这是我用来测试这个想法的一些代码:
#include <stdio.h>
char r[65536],*e=r;
main() {
e+=8;
while(*e) {
*e+=1;
e+=5;
*e-=1;
e-=1;
}
*e+=1;
printf("%i",*e);
printf(" %c",e);
}
它应该做的是:
- 设置第一个元素为8
- 然后,当当前元素不为零时,
- 移动到下一个单元格
- 加5
- 后退
- 减一。 (这会重复 8 次,因为 while 测试会在减去最后一个时失败)
- 显示指针的位置
- 显示指针指向的数组内容(我希望)
它的作用:
1 Φ
相对于
40 (
^^ 8 x 5 = 40,这就是它应该显示的内容。
接受任何提示/建议/批评。
最佳答案
您恰好在您不应该不的地方取消引用,反之亦然。你的意思是:
*e+=8;
while(*e) {
e+=1;
*e+=5;
e-=1;
*e-=1;
}
*e+=1;
printf("%d",e - r); //index
printf(" %p",e); //pointer value
printf(" %c",*e); //pointee value
*
检索指针指向的值。
关于c - C指针的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9034297/