双指针char操作
发布时间:2020-12-16 10:31:12 所属栏目:百科 来源:网络整理
导读:假设我有char ** argv. 首先,如何打印出argv中的所有字符串?我尝试了以下方法: char *temp;temp = *argv; // Now points to the first string?while (temp != NULL) { printf("%s ",temp); temp++;} 在这里,当temp递增时,它只跳过一个字符.为什么会这样?
假设我有char ** argv.
首先,如何打印出argv中的所有字符串?我尝试了以下方法: char *temp; temp = *argv; // Now points to the first string? while (temp != NULL) { printf("%s ",temp); temp++; } 在这里,当temp递增时,它只跳过一个字符.为什么会这样?我知道argv是一个持有点数的数组.每个指针指向一个char *数组.如果是这样,为什么这不起作用?我知道因为temp是char类型,所以递增该指针会使它增加1个字符(或字节).如果是这样,我如何将指针增加到下一个数组并打印出该字符串? 解决方法
它只跳过一个字符,因为temp是指向char的指针.通过添加一个,您告诉编译器将指针移动到指向内存中的下一个char.
argv是一个指针数组.您需要做的是在每次迭代时转到下一个指针.就像是: char **temp = argv; // temp is a pointer to a *pointer*,not a pointer to a *char* while (*temp != NULL) { printf("%s ",*temp); temp++; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |