假设我有这个示例功能
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“世界”的内存地址
但是,我不明白为什么执行 pChar + strlen(pChar)行代码时pChar = 0(这就是书中所说的)。
答案 0 :(得分:2)
pChar不是0
。
可能的错误::*pAdd
指向字符串{{的最后一个字符,因此pChar
是 0 而不是pAdd
。 1}},即"World"
,空终止符('\0'
)的整数值为 0 。
您想说的地址是 0 -您可能需要阅读以下内容:
答案 1 :(得分:1)