【发布时间】:2018-10-16 18:58:58
【问题描述】:
假设我有这个示例函数
int main(int argc, char** argv) {
char* pChar = argv[2]; // Get the second argument "Word"
char * pAdd = pChar + strlen(pChar); // 0 + 5
}
并通过输入 ./fileName Hello World
运行由于argv[2] = World,pChar应该指向Char“World”的内存地址
但是,我不明白为什么在执行 pChar + strlen(pChar) 行代码时 pChar = 0(这就是书上所说的)。
【问题讨论】:
-
但是,我不明白为什么在执行 pChar + strlen(pChar) 行代码时 pChar = 0。 你怎么知道
pChar是 @987654323 @? -
你的意思是
*pAdd是 0 吗? -
因为字符串只是“World”,而 C 字符串以 0 结尾。你期望它是什么?
-
“书”——什么书?运行代码,自己看看。这本书要么有错字,要么你误报了它所说的内容。