标题:知道基本了怎么提高?
只看楼主
a9517495424
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:305
专家分:139
注 册:2011-7-20
得分:0 
我查书了,也没看到过这种定义方式。
2011-08-06 22:50
a9517495424
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:305
专家分:139
注 册:2011-7-20
得分:0 
*str = str[] ?
2011-08-06 22:52
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
得分:0 
是的,char* str中,str就是指向字符串的指针,这种定义等价于char str[]。

授人以渔,不授人以鱼。
2011-08-06 22:57
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
得分:0 
这种操作没有实际改变字符串str[]的内容,它不过是另外返回一个指向字符串某个位置的指针,宣称字符串从这里开始,但原先的那个字符串仍然存在,它没有任何改动。你指望使用的人,通过函数返回的指针来操作,但事实未必如此,很多时候,原先用str[],他希望的是仍用str[],不是叫他用*str[5]。

现在这个函数干的是什么呢?对字符串str[] = "   Hello,world!",它返回了str[3]的地址,即&str[3],但当我们printf("%s", str)的时候,就会发现什么都没有改变。这不是一个好主意。

[ 本帖最后由 TonyDeng 于 2011-8-7 16:02 编辑 ]

授人以渔,不授人以鱼。
2011-08-06 23:06
a9517495424
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:305
专家分:139
注 册:2011-7-20
得分:0 
回复 34楼 TonyDeng
嗯~那个只是移动了指针是吧、
2011-08-07 15:57



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-346794-1-1.html




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

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