gpt4 book ai didi

C : Using char * const pointer

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

在下面的程序中,p 被声明为一个指针(它是常量,但字符串不是)。但程序仍然无法运行,并突然停止并提示“untitled2.exe 已停止工作”。

#include<stdio.h>
#include<stdlib.h>

int main(){
char * const p = "hello";
*p = 'm';
return 0;
}

为什么会出现这种意外行为?

最佳答案

虽然 p 本身是一个指向非 const 对象的指针,但它指向一个字符串文字。字符串字面值是一个对象,尽管就其类型而言不是 const 限定的,但它是不可变的。

换句话说,p 指向一个不是const 的对象,但表现得好像它是。

阅读有关 ANSI/ISO 9899:1990 (C90) 第 6.1.4 节的更多信息。

关于C : Using char * const pointer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17139144/

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