字符型指针变量的赋值问题

来源:5-3 字符数组和指针字符串

六个蒸蛋

2019-10-31 12:26

char str[]="hello" 很好理解,就是给字符数组 str[] 赋值"hello";

但是 char *str2="world" 该怎么理解?这是给指针变量 str2 赋值"world"?可是指针变量里面存的不应该是内存地址吗?怎么可以赋值一个字符串?

写回答 关注

1回答

  • 慕瓜2511366
    2019-11-04 16:38:02
    已采纳

    每个字符串在内存中都占用一段连续的存储空间。并有唯一确定的首地址。因此可以将字符串的首地址赋值给字符指针。则可以让字符指针指向一个字符串。对于字符串常量而言,字符串常量本身就代表他常量存储区的首地址。

    运行的时候,就加载了。是无法更改的,在我们的内存中代码段中的。栈内存和堆内存才能更改。


    六个蒸蛋

    所以 char *str2="world" 是将字符 w 的地址赋值给指针变量 str2,对吧?

    2019-11-06 00:12:14

    共 1 条回复 >

Linux C语言指针与内存

指针-C语言的核心,代领大家对c语言有更加深刻的理解

116475 学习 · 250 问题

查看课程

相似问题