如何从c中的字符串数组中访问单个字符?

2024-03-02

只是想了解如何寻址字符串数组中的单个字符。另外,这当然会让我总体上理解指向指针下标的指针。 如果我有char **a我想到达第二个字符串的第三个字符,这有效吗:**((a+1)+2)?看来应该...


几乎,但不完全是。正确答案是:

*((*(a+1))+2)

因为您需要首先取消对实际字符串指针之一的引用,然后将该选定的字符串指针取消引用到所需的字符。 (请注意,为了清楚起见,我添加了额外的括号)。

或者,这个表达式:

a[1][2]

也将起作用!...并且也许会是首选,因为您尝试做的事情的意图更加不言而喻,并且符号本身也更加简洁。对于刚接触该语言的人来说,这种形式可能不会立即显而易见,但要理解数组表示法起作用的原因是因为在 C 中,数组索引操作实际上只是等效指针操作的简写。即:*(a+x) 与 a[x] 相同。因此,通过将该逻辑扩展到原始问题,有两个单独的指针取消引用操作级联在一起,其中表达式 a[x][y] 相当于 *((*(a+x))+ 的一般形式是)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从c中的字符串数组中访问单个字符? 的相关文章

随机推荐