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

我知道C中的数组只是指向顺序存储的数据的指针。但是什么不同意味着符号[]和*的不同。我的意思是在所有可能的用法上下文中。例如:


char c[] = "test";

如果您在函数体中提供此指令,它将在堆栈上分配字符串,而


char* c = "test";

将指向数据(只读)段。


您能否在“所有使用情况”上下文中列出这两种表示法之间的所有差异,以形成清晰的常规视图。


12345678_0001
浏览 1038回答 3
3回答

千巷猫影

char c[] = "test";这将创建一个包含字符串test的数组,因此您可以修改/更改任何字符,例如c[2] = 'p';但,char * c = "test"这是一个字符串文字,它是一个const char。因此,对此字符串文字进行任何修改都会使我们产生段错误。所以c[2] = 'p';现在是非法的,并给我们带来了段错误。
打开App,查看更多内容
随时随地看视频慕课网APP