指针的问题

April 10, 2014

这些细节的问题涉及到语言内部的实现和处理,现在还是没有太懂。

尤其是关于const的问题。

比如说下面的代码:

#include <stdio.h>

int main(void)
{
    const int x = 1;
    int y = 3;
    int * p = (int *)&x;
    *p = 3;
    printf("x = %d\n", x);
    printf("*p = %d\n", *p);
    if (y == true)
        printf("true\n");

    return 0;
}
/*
output:
x = 1
*p = 3
*/

也就是说,const类型的整型变量的值并没有改变。印象中好像是const类型的变量在内存中存放的位置和普通变量不一样之类的……当初也想到这个了,笔试的时候不太确定。整道题做错了。。。白写了那么多啊囧。

这个问题具体的原因现在还不太懂,问题先留在这里,等会儿再去查。。。还有坑爹的实验要去做。

comments powered by Disqus