Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 为什么这个带有指针的for循环不去任何地方?_C_Loops_Pointers - Fatal编程技术网

C 为什么这个带有指针的for循环不去任何地方?

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)

我正在尝试学习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,因为我试着去做它。

连同其他人建议的指针符号修复,我会写这个例子,这样它在循环中打印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意味着非常不同的东西。这在这里并不重要,但你必须理解这个问题。我给了你一些研究的东西。任何程序员都必须独立思考。这是一个好的开始!