| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2796 人关注过本帖
标题:有关指针与字符串关系的问题(程序在c4dorid运行正常,只是不理解)
只看楼主 加入收藏
南山浅悠然
Rank: 2
等 级:论坛游民
威 望:1
帖 子:53
专家分:92
注 册:2014-5-21
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:15 
有关指针与字符串关系的问题(程序在c4dorid运行正常,只是不理解)
源码如下
#include <stdio.h>

int main(void)
{
    char* ch = "hello";

    printf("%s", ch);

    return 0;
}

问题:>> char* 是指向char型变量的指针变量,指针变量不是应该只存储变量的地址吗?为何此程序中hello这个字符串可直接赋值于指针变量?
搜索更多相关主题的帖子: include return 字符串 hello 
2016-09-24 20:31
ehszt
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:40
帖 子:1745
专家分:3216
注 册:2015-12-2
收藏
得分:0 
系统只把存储hello字符串的首地址赋给了ch,并没将整个值赋给ch.
2016-09-24 21:12
wpwbq
Rank: 2
等 级:论坛游民
帖 子:6
专家分:10
注 册:2013-8-27
收藏
得分:3 
字符串跟数组名有一样的功能,数组名代表数组首元素的地址,字符串本身代表首字符的地址,也就是说字符串本身就是一个地址
2016-09-24 21:15
南山浅悠然
Rank: 2
等 级:论坛游民
威 望:1
帖 子:53
专家分:92
注 册:2014-5-21
收藏
得分:0 
回复 3楼 wpwbq
难道不应该先存于数组中,再赋值吗?
2016-09-24 21:27
南山浅悠然
Rank: 2
等 级:论坛游民
威 望:1
帖 子:53
专家分:92
注 册:2014-5-21
收藏
得分:0 
回复 2楼 ehszt
那普通的数值直接赋予指针就不行,必须是字符串吗?
2016-09-24 21:28
ehszt
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:40
帖 子:1745
专家分:3216
注 册:2015-12-2
收藏
得分:0 
回复 5楼 南山浅悠然
没说必须是字符串。char * ch,a[15];
ch=a;
这样也行。
2016-09-24 21:44
TAAAAB
Rank: 7Rank: 7Rank: 7
来 自:湖南
等 级:黑侠
威 望:1
帖 子:243
专家分:635
注 册:2011-5-29
收藏
得分:3 
你想下hello是不是变量,ch存一个字符串常量的首地址会不会好理解些

人有多懒,编程就有多难。
2016-09-24 22:42
南山浅悠然
Rank: 2
等 级:论坛游民
威 望:1
帖 子:53
专家分:92
注 册:2014-5-21
收藏
得分:0 
多谢诸位
2016-09-24 23:12
南山浅悠然
Rank: 2
等 级:论坛游民
威 望:1
帖 子:53
专家分:92
注 册:2014-5-21
收藏
得分:0 
回复 6楼 ehszt
数据不是应先存于变量中吗,这才有存储空间可供其使用。

还是说字符串类似数组,可数组本身又代表一系列类型相同变量的组合。

而数据能直接赋予指针,好像不对?还是说只能是字符型指针变量可直接被字符串赋值?
2016-09-24 23:20
ehszt
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:40
帖 子:1745
专家分:3216
注 册:2015-12-2
收藏
得分:0 
回复 9楼 南山浅悠然
这是字符型指针独有的赋值方式,其它类型的不行。
2016-09-25 08:45
快速回复:有关指针与字符串关系的问题(程序在c4dorid运行正常,只是不理解)
数据加载中...
 
   



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

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