gpt4 book ai didi

C区分指向Char的指针和指向Char数组的指针

转载 作者:行者123 更新时间:2023-12-02 06:56:40 24 4
gpt4 key购买 nike

我正在阅读 K&R,并且在字符指针部分感到有些困惑。 K&R 提供以下作为带有指针的 strcpy 版本:

void strcpy(char *s, char *t) {
while ( (*s = *t) != '\0') {
s++;
t++;
}
}

这与使用指向单个字符的指针有何不同?还是 C 只是相信我知道自己在做什么,并且两种情况都使用指向字符的指针?只是当我有这些字符的数组时,它会被 \0 终止,而如果它只是一个字符,那么内存中的后续点可能是任何东西……是这样吗?

最佳答案

区分两者完全是您的责任。

在指向单个字符的指针的情况下,您可以小心地将其作为 char * const 使用,这将不允许您增加指针或以其他方式更改它所指向的内容并走到某个地方和未定义的行为,但您仍然可以修改它指向的值。

C 是非常低级且非常“简单”的语言。当您使用指针时,您必须非常负责。自然,这适用于 char * 以及任何其他“数组”——如果不是以 null 结尾的,则无论如何都应该传递数组的长度并将其用作指南。

关于C区分指向Char的指针和指向Char数组的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29856540/

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