c - 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 (这就是书中所说的)。
解决方案
pChar 不是0
。
可能的错误: *pAdd
是0而不是pChar
sincepAdd
指向字符串的最后一个字符"World"
ie并且空终止 ( ) 的'\0'
整数值为0。'\0'
您想说地址为0 - 您可能需要阅读以下内容:
推荐阅读
- c++ - 使标题看起来像是在不同的文件夹中
- html - CSS 文件被删除或隐藏在 atom 中
- react-native - 如何将两个组件放在屏幕的左右两侧
- c - 使用函数创建链表的问题
- azure-devops - Azure DevOps 基于角色的菜单项
- windows - 如何从Windows cmd中的文件中打印一行的某些部分
- c# - 是否可以在 DropDownList html helper 中使用链接?
- selenium - Protracor comapare 2个字符串数组
- ansible - 在 Ansible 中安装多个包
- java - TextureView 使用 OpenGL 显示空白屏幕