C 为什么这个带有指针的for循环不去任何地方?
我正在尝试学习C语言中的指针,下面是我为测试它而编写的一些代码:C 为什么这个带有指针的for循环不去任何地方?,c,loops,pointers,C,Loops,Pointers,我正在尝试学习C语言中的指针,下面是我为测试它而编写的一些代码: #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { int m = 4; int *n; n = &m; printf("%d\n",*n); for (*n = 0; *n < 100; *n++){ printf("%d\n",*n)
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int m = 4;
int *n;
n = &m;
printf("%d\n",*n);
for (*n = 0; *n < 100; *n++){
printf("%d\n",*n);
}
}
正如所料,第一部分打印了4。但是循环没有超过4,也没有达到100,因为我试着去做它。连同其他人建议的指针符号修复,我会写这个例子,这样它在循环中打印m,而不是*n,所以你可以看到操纵*n确实对它指向的变量有影响:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int *n, m = 4;
n = &m;
printf("%d\n", *n);
for (*n = 0; *n < 100; (*n)++)
{
printf("%d\n", m);
}
}
您的操作程序有问题,请查找!。您的代码调用未定义的行为。使用调试器逐行查看代码中的实际情况;我不明白你的意思。我确实在网上看到过关于从右到左tho的东西,但还不清楚。但是,我将++移动到*n所在的位置,它就运行了。但是我需要能够复制这个可能重复的*n++->*n++或+++*n++*n意味着非常不同的东西。这在这里并不重要,但你必须理解这个问题。我给了你一些研究的东西。任何程序员都必须独立思考。这是一个好的开始!