Closed. This question needs details or clarity。它当前不接受答案。
                            
                        
                    
                
                            
                                
                
                        
                            
                        
                    
                        
                            想改善这个问题吗?添加详细信息并通过editing this post阐明问题。
                        
                        2年前关闭。
                                                                                            
                
        
假设我有这个示例功能

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不是0

可能的错误:*pAdd是0而不是pChar,因为pAdd指向字符串"World"的最后一个字符,即'\0'并且空终止('\0')的整数值为0。

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

in c can an address of a pointer be 0

关于c - C中的argc和argv ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52833605/

10-11 07:29