【发布时间】:2016-09-17 23:44:27
【问题描述】:
我正在尝试学习 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);
}
}
正如预期的那样,第一部分打印了 4。但循环没有超过 4,并且没有达到 100,因为我试图做到这一点。
【问题讨论】:
-
您的 运算符优先级 有问题(查一下!)。您的代码调用未定义的行为。使用调试器查看代码中实际发生的情况(逐行)。
-
我对 C 很陌生;我不知道你的意思。我确实在网上看到了关于从右到左的东西,但不清楚。但是,我将 ++ 移到了 *n 所在的位置,它运行了。但我需要能够复制这个
-
*n++-->(*n)++或++*n -
++*n意味着非常不同的东西。这无关紧要,但至关重要您了解这个问题。我给了你一些研究。任何程序员都必须自己思考。那是一个好的开始!