山不在高,有仙则名。水不在深,有龙则灵。 ----CSDN 时时三省
笔试题8
c是个数组 它的每个元素是char* 它初始化了四个字符串 把这四个字符串的首字符的地址 传到了c里面
cp有四个元素 每个元素的类型是char**
所以c+3指向FORST c+2指向POINT c+1指向NEW c指向ENTER
cpp是指向cp的首元素地址 就是c+3
然后就是打印cpp的时候++了 所以它就指向了c+2的地址 然后解引用等于拿到了c+2的地址 再解引用就拿到了POINT的地址 就等于从p往后打印 就是打印POINT
++cpp 因为上面++cpp已经加过了 所以这次就是从指向c+2再往下加 指向c+1 然后解引用 相当于拿到了我c+1的内容 然后-- c+1就变成了c 然后解引用 它就指向了ENTER 就是E的地址 然后+3就指向了E 从E向后打印内容就是打印ER
cpp[-2]可以换成**(cpp-2)+3 cpp减2指向c+3 解引用以后就得到了c+3的内容 再解引用就找到了FIRST 它指向的是它的首地址 所以加3之后指向的是S 从S往后打印 就打印出来了ST
cpp[-1][-1]可以换成*(*(cpp-1)-1)+1 cpp-1找到了c+2的地址 解引用等于拿到了c+2的内容 -1以后就指向了NEW 再解引用就拿到了N的地址 N+1就指向了E 所以它就是打印EW