黑马程序员技术交流社区

标题: 这是常量吗? [打印本页]

作者: chaoren    时间: 2015-3-9 09:05
标题: 这是常量吗?
char *string;
string ="123";
作者: 喧闹的世界    时间: 2015-3-9 10:12
stirng属于char*型变量,“123”是字符串常量。

对字符指针变量string的赋值,是把字符串第一个元素的地址赋值给指针变量string,使string指向字符串的第一个字符。
作者: 朱士龙    时间: 2015-3-9 10:36
你定义的string是char *类型,属于字符型指针,里边存储的是所指向的内容的地址。此处,你将string指向“123”字符串常量,因此存放的是字符串中字符1的地址。所以,“123”是常量,指针中存放的是变量。
作者: chaoren    时间: 2015-3-9 14:16
朱士龙 发表于 2015-3-9 10:36
你定义的string是char *类型,属于字符型指针,里边存储的是所指向的内容的地址。此处,你将string指向“12 ...

我看视频优点扰。老实说:char[]=“sdsda” 是变量
                                               char *p=“sdsda” 是常量。
可是我在后来又看到老师用指针表示字符串,还对里面的值进行修改
作者: 朱士龙    时间: 2015-3-9 15:59
指针值得是首元素的地址,指向的是“sdsda”的存储空间。所以,可以用指针修改存储空间里的东西的。
作者: 朱士龙    时间: 2015-3-9 16:00
chaoren 发表于 2015-3-9 14:16
我看视频优点扰。老实说:char[]=“sdsda” 是变量
                                               ...

指针值得是首元素的地址,指向的是“sdsda”的存储空间。所以,可以用指针修改存储空间里的东西的。
作者: chaoren    时间: 2015-3-9 17:09
朱士龙 发表于 2015-3-9 16:00
指针值得是首元素的地址,指向的是“sdsda”的存储空间。所以,可以用指针修改存储空间里的东西的。 ...

不是说常量不可修改吗?
作者: xiezhongmin    时间: 2015-3-9 18:46
chaoren 发表于 2015-3-9 17:09
不是说常量不可修改吗?

谁说不可以修改,2级指针就可以




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2