gpt4 book ai didi

C chars 和 char* 指针的索引

转载 作者:太空宇宙 更新时间:2023-11-04 06:29:49 24 4
gpt4 key购买 nike

我正在尝试理解指针。当我声明

char* buffer = malloc(10);

&buffer 是一个 char** ,它是有意义的并且遵循

char new_buf;

其中 &new_buf 是指针或 char*

什么是&buffer[5]

显然你可以用 %s 打印出来,所以它是一个字符串吗?

最佳答案

buffer的类型是char *,所以buffer[5]等价于*(buffer + 5) ,类型为 char。因此 &buffer[5] 的类型是 char *

它是否是一个字符串取决于它是否以 null 结尾。例如,如果 buffer 指向一个字符串 "hello,you",那么 &buffer[5] 指向 buffer< 之后的 5 个字符的开头,就是",you",一个字符串。

h e l l o , y o u \0
^ ^
| |
buffer &buffer[5]

另一种更容易理解的方式是,buffer等价于&buffer[0],所以&buffer[5]是指针指向它后面的 5 个字符。

关于C chars 和 char* 指针的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21869761/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com