为什么函数"strlen"不能像这样修改"ch1"的长度?

why the function “strlen” can't get the length of "ch1" modified like this?

本文关键字:ch1 像这样 函数 strlen 不能 为什么 修改      更新时间:2023-10-16

在此处输入图像描述

我声明了一个指向char数组类型的指针,并将其中一个元素更改为"\0"。我认为函数"strlen"可以获得"\0"的第一个元素的长度,但实际上,程序崩溃了。有人知道原因吗?

您的字符指针指向一个字符串文字,它是不可变的数据。出于向后兼容性的原因,编译器允许一个非常常量char*指向文字,但正如您所注意到的,试图修改字符串会导致程序崩溃。