use*_*138 1 c c++ arrays pointers
以下代码中的cc是否包含数组c的基址,或者它是否包含"Hello"中字母"H"的地址?如果答案是基地址,那么为什么cc在执行cc ++之后不会增加8个字节,因为它应该保持两个指针?
void foo(char *cc[]) { printf("%x\n",cc); cc++; printf("%x\n",cc); } int main() { char *c[] = {"Hello","World"}; foo(c); }
Ed *_*eal 5
c是一个指针数组.第一个指针(c[0])指向由Hello字符后跟空字符组成的字符数组.c[1]指向另一个包含World后跟空字符的字符数组.
c
c[0]
c[1]
所以cc将指出c[0]如上所述.增量cc将与上述相同c[1].
cc
最好在纸上绘制这些东西,以便更好地了解正在发生的事情.
归档时间:
13 年,4 月 前
查看次数:
726 次
最近记录: