| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1085 人关注过本帖
标题:[讨论]字符串问题
只看楼主 加入收藏
tryplus
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2006-10-5
收藏
得分:0 
应该是这样的,谢谢啦....新年好....
2007-02-17 16:08
cfnxy
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2007-2-17
收藏
得分:0 
以下是引用保修一年在2007-2-14 17:12:24的发言:
各位还是没答到正题上啊,我是问try 所指的字符串“asdf" 所占的内存有没有被改。
从程序运行结果看它好像是被改了,可“asdf" 又不是变量,怎么能被改呢???



下面是完整的程序,大家可以运行试试:

#include <stdio.h>

int main()
{
char * try="asdf";//执行后,为"asdf"分配空间,try这个空间中,存放一个地址,这个地址是字符串"asdf"中的'a'的地址.
scanf ("%s",try );//输入一串字符到缓冲区,回车,编译器为输入的字符串开辟空间,把首地址存在try这个空间中,
printf( "%s",try);//此时,到try空间中,找到存放在里面的地址,然后读出
getchar(); //吸收'\n'字符用??
}

结果:
try所指向的字符串“asdf" 所占的内存没有被改变.而被抛弃,程序执行完,自动收回

main()
{
char * try="asdf",*p;
p=try; //保留字符串的首地址
printf("try=%d,p=%d %s\n",try,p,p);
scanf ("%s",try ); //try虽然改变而p没变
printf( "%s try=%d,p=%d\n",try,try,p);//可以看出输入字符串后,try所指地址并没有变化,原字符串被覆盖而不是抛弃
printf("%s",p);
getchar();
}

[此贴子已经被作者于2007-2-18 10:24:12编辑过]

2007-02-18 10:22
快速回复:[讨论]字符串问题
数据加载中...
 
   



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

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