| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2671 人关注过本帖
标题:有关指针与字符串关系的问题(程序在c4dorid运行正常,只是不理解)
只看楼主 加入收藏
linlulu001
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:20
帖 子:944
专家分:4047
注 册:2016-4-13
收藏
得分:3 
回复 9楼 南山浅悠然
char *ch="hello";  //字符串常量(这里的hello是常量)
ch只是提供路径访问它。同时"hello"是不能修改的(毕竟是常量嘛)。



2016-09-25 09:19
wpwbq
Rank: 2
等 级:论坛游民
帖 子:6
专家分:10
注 册:2013-8-27
收藏
得分:0 
回复 3楼 wpwbq
不是的,字符串被存在用于存储常量那部分内存在,声明指针是为指针变量开辟空间,并把字符串地址付给它。两个关系是指针指向了字符串。
2016-09-27 09:50
南山浅悠然
Rank: 2
等 级:论坛游民
威 望:1
帖 子:53
专家分:92
注 册:2014-5-21
收藏
得分:0 
多谢诸位,已明白
2016-09-27 12:21
弟大勿勃
Rank: 2
等 级:论坛游民
帖 子:186
专家分:59
注 册:2014-4-17
收藏
得分:0 
"hello"是个字符串,实际相当于一个数组存储了“hello”这几个字符,
char* ch = "hello";这条代码可以写成:
char *ch;
ch="hello";
上面是不是好理解多了,先定义一个指向字符型的指针ch,再把“hello”
这个字符串的首地址赋予ch(其实“hello”字符串和数组性质差不多,这样表示就是把字符串的首地址给了指针ch)
最后printf("%s", ch);这条输出函数中的'%s'表示输出的是字符串,ch是指针(地址),自然就能输出整个字符串了。

--=--希望对你有帮助。
2016-09-27 13:50
linlulu001
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:20
帖 子:944
专家分:4047
注 册:2016-4-13
收藏
得分:0 
回复 14楼 弟大勿勃
是字符串常量,不是字符串,这两者是有区别的。
字符串常量和字符串变量都是一个一维字符数组,
区别在于:字符串变量的名字(一维字符数组名)及其所需要的存储空间都是显式定义的,可以通过名字来引用相应的字符串变量。
          字符串常量所需的的存储空间是隐式定义的,并且根本就没有名字。

[此贴子已经被作者于2016-9-27 14:03编辑过]

2016-09-27 13:55
弟大勿勃
Rank: 2
等 级:论坛游民
帖 子:186
专家分:59
注 册:2014-4-17
收藏
得分:0 
回复 15楼 linlulu001
恩恩,我神,“hello”是常量,char string[]是字符串变量,它又变量名string。
2016-09-27 14:26
快速回复:有关指针与字符串关系的问题(程序在c4dorid运行正常,只是不理解)
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017203 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved