woaini92887 发表于 2014-11-20 12:57:50

指针和字符串和内存区 急!!!!!!!!!!!!!!!!!!

如果int *p=" i love you"' ;这个字符串存放在内存的那个区?
是常量存储区吗
常量存储区是不是只能写入不能被改变?

仰望天上的光 发表于 2014-11-20 15:52:23

=" i love you"' ;这个字符串是只读的,不能改变。

风之残月 发表于 2014-11-20 19:07:37

一般系统将进程(程序运行后的实例)分成数据区、代码区、堆、栈,“i love you”在数据区里,只能读不能写,p 只是指向了这个字符串而已

woaini92887 发表于 2014-11-21 13:48:37

风之残月 发表于 2014-11-20 19:07
一般系统将进程(程序运行后的实例)分成数据区、代码区、堆、栈,“i love you”在数据区里,只能读不能写 ...

不能读 那怎么用了printf()语句能读出来呢
pirntf("%s\n",a);
如果改成
pirntf("%s\n",*a);
这就报错了 不能读
这是怎么回事呀 {:5_100:}

风之残月 发表于 2014-11-21 18:32:02

woaini92887 发表于 2014-11-21 13:48
不能读 那怎么用了printf()语句能读出来呢
pirntf("%s\n",a);
如果改成


我说的是只能读不能写,建议楼主把源代码贴出来

oggplay 发表于 2014-11-21 21:03:39

本帖最后由 oggplay 于 2014-11-21 21:10 编辑

汇编语言里有一个专门的数据段 .section .rodata 也叫只读数据段
页: [1]
查看完整版本: 指针和字符串和内存区 急!!!!!!!!!!!!!!!!!!