int mygod=13;int *** tellmewhy=&&&mygod;  //    &(&(&mygod))???((char*)tellmewhy)++;问1,最初tellmewhy 中的内容是什么?并且((char*)tellmewhy++)后指针有指向何方?问2,若sizeof(int*)=4,则以下情况中:int sos=250;int* kill=&sos;int iloveblood=sizeof((char*)kill);
此时iloveblood是否等于sizeof(void*),是否等于sizeof(char*)?

解决方案 »

  1.   

    同一个问题发两遍,真是不懂?
    ===============
    1.int *** tellmewhy=&&&mygod; syntax 错误,显然的事情是计算机科学中
    不允许二义性,&&&到底是取地址还是位与操作符或者逻辑与运算符?2.如果单单指指针大小的话应该是四个字节,所以是等于的!
      

  2.   

    int *** tellmewhy=&&&mygod;  //    &(&(&mygod))???我觉得编译不过。。
      

  3.   

    首先&&&mygod 或 &(&(&mygod) 肯定编译不过去。至于 int ***tellmewhy;一般指向:
    int a1[] = {1, 2, 3};
    int a2[] = {4, 5, 6};int* b1[] = {a1, a2};
    int* b2 = {a1, a2};int** c1[] = {b1, b2};int*** tellmewhy = c1;
    ------------------------------------------------((char*)tellmewhy)++; 的含义是
    tellmywhy = (int***)((long)tellmywhy + 1); (32位成立)------------------------------------------------
    如果是32位程序
    iloveblood = sizeof(void*) = sizeof(char*) = sizeof(int*) 
    = sizeof(otherAnimal*) = 4 = idontloveblood