为了账号安全,请及时绑定邮箱和手机立即绑定

C / C ++ int []与int *(指针与数组表示法)。有什么不同?

C / C ++ int []与int *(指针与数组表示法)。有什么不同?

C++ C
12345678_0001 2019-11-30 10:46:37
我知道C中的数组只是指向顺序存储的数据的指针。但是什么不同意味着符号[]和*的不同。我的意思是在所有可能的用法上下文中。例如:char c[] = "test";如果您在函数体中提供此指令,它将在堆栈上分配字符串,而char* c = "test";将指向数据(只读)段。您能否在“所有使用情况”上下文中列出这两种表示法之间的所有差异,以形成清晰的常规视图。
查看完整描述

3 回答

?
千巷猫影

TA贡献1829条经验 获得超7个赞

char c[] = "test";

这将创建一个包含字符串test的数组,因此您可以修改/更改任何字符,例如


c[2] = 'p';

但,


char * c = "test"

这是一个字符串文字,它是一个const char。

因此,对此字符串文字进行任何修改都会使我们产生段错误。所以


c[2] = 'p';

现在是非法的,并给我们带来了段错误。


查看完整回答
反对 回复 2019-11-30
  • 3 回答
  • 0 关注
  • 1037 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信