首页 > 解决方案 > C中的argc和argv

问题描述

假设我有这个示例函数

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 (这就是书中所说的)。

标签: cargvargc

解决方案


pChar 不是0

可能的错误: *pAdd0而不是pCharsincepAdd指向字符串的最后一个字符"World"ie并且空终止 ( ) 的'\0'整数值为0'\0'

您想说地址为0 - 您可能需要阅读以下内容:

在c中指针的地址可以为0


推荐阅读