none
关于sizeof关键字 RRS feed

  • 问题

  • 最近发现如下问题。

    sizeof("abcd") 结果是5

    sizeof("abcd" + 1000) 结果是5

    有谁知道为什么这两个结果是一样的?sizeof("abcd")这个结果是5好理解,可是sizeof("abcd"+1000),按照我自己的理解是会出编译错误的,可是没出编译错误。

    2010年5月31日 7:37

答案

  • sizeof是一个编译器命令,不是在程序中算出来的。

    这句话确实是错的,但是和你用的编译器有关,并不是所有的编译器都不报错


    0xBAADF00D
    2010年6月1日 5:07
    版主

全部回复

  • 没人有知道原理么?继续顶到大牛出来啊
    2010年6月1日 1:27
  • "abcd"  是个指针,当然可以加 1000,只是不知道飞到内存的那个角落里面去而已,例如:

    PVOID p = "abcdefghijk" + 10000;

    至于 sizeof("abcd" + 1000)....不知道编译器会把这个东西变成啥....

    2010年6月1日 3:42
  • sizeof是一个编译器命令,不是在程序中算出来的。

    这句话确实是错的,但是和你用的编译器有关,并不是所有的编译器都不报错


    0xBAADF00D
    2010年6月1日 5:07
    版主