gpt4 book ai didi

c - 在c声明期间初始化指针

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

以下是如何工作的?

char *str="string";
printf("str is %s\n",str);

但是下面的给出了段错误

int *i=3;
printf("int is %d\n",*i);

最佳答案

"string" 之类的字符串文字是存储在只读内存位置的 char[7]。数组名称可以衰减为指向其第一个元素的指针,因此可以将 char* 初始化为这样的文字表达式。

3 之类的整型文字只是一个不存储在任何地方的 int 右值。初始化 int* i = 3i 初始化为指向值为 3 的内存位置。这不太可能是有效位置,这就是为什么取消引用 i 会导致分段违规。

关于c - 在c声明期间初始化指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29184343/

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