gpt4 book ai didi

c - 将数组类型分配给指针类型?

转载 作者:太空宇宙 更新时间:2023-11-04 05:11:42 25 4
gpt4 key购买 nike

我知道指针的字符串内容是不可修改的。但是考虑下面的代码。那是不是意味着cf已经变成了“char数组”类型(其内容是可修改的)。

#include <stdio.h>

int main()
{
char line[100];
char *cf;
cf = line; //cf (of type pointer-to-pointer-to-char) is converted?

*cf = 's';
*cf = 'g';
printf("%c", *cf);
}

以下不起作用。

int main()
{
char *cf;
*cf = 's';
*cf = 'g';

printf("%c", *cf);
}

最佳答案

在第一个片段中,cf 不是一个数组,而是指向一个数组。所以你可以用它来访问数组的值。您甚至可以使用像 cf[1] 这样的数组访问语法。

在您的第二个片段中,cf 仍然是一个 char*。它未初始化,因此分配给它指向的位置是未定义的行为。

你只是写入和读取一个字节,所以它可能会如你所愿...但它也可能由于访问冲突而崩溃,导致数据损坏,因为你更改了其他东西使用的内存,或者其他东西可能会发生完全不同的情况。

关于c - 将数组类型分配给指针类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57003094/

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