标题:一个关于字符串的问题!
取消只看楼主
rellorsky
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2006-4-14
 问题点数:0 回复次数:7 
一个关于字符串的问题!
char * ptr ="jiky";
char ptr[]="jiky";
有什么区别!我一直认为没有区别!
搜索更多相关主题的帖子: 字符串 ptr 
2006-04-14 11:21
rellorsky
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2006-4-14
得分:0 

#include <stdio.h>
#include <stdlib.h>
int main(int argc, char* argv[])
{
char ptr[]="123.456";//这里用char *ptr="123.456"代替,会出现内存错误啊
char *ptmp=ptr;
char * pti="123";
int a=atoi(pti);
float b=atof(ptr);
long c =atol(pti);
printf("%d\n%f\n%ld\n",a,b,c);
itoa(a,ptmp,10);
printf("%s\n",ptmp);
return 0;
}
2006-04-14 11:36
rellorsky
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2006-4-14
得分:0 
哪位大侠帮看看 编译环境VC++ 6.0
2006-04-14 11:37
rellorsky
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2006-4-14
得分:0 
我知道char ptr[];是定义一个数组
char *ptr;定义一个指针;
我问的不是这个问题!

char *ptr="123.456";这种定义方式在写c程序中定义一个字符串使用很普遍啊!程序里经常这样用
也可以使用char ptr[]="123.456";
但是上边的程序换成char *ptr="123.456";为什么会出内存错误呢?
能解释一下吗??
原因在哪里?
2006-04-14 13:43
rellorsky
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2006-4-14
得分:0 

明白了!多谢

2006-04-14 14:48
rellorsky
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2006-4-14
得分:0 
但是还有一个问题!静态存储区的值不可以该吗??
static int i=10;
i=39;
这样好象没有错啊!
i是存储在静态存储区的啊!但是我可以修改他啊
2006-04-14 14:51
rellorsky
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2006-4-14
得分:0 
/******************************************************************************************************************************************
char * ptr ="jiky"; 定义一个指针,该指针指向"jiky"字符串,"jiky"存储在静态存储区,其值不允许改变

char ptr[]="jiky"; 是隐含定义数组,其值允许改变


详见http://lehu.512j.com/1_nei4cun2.htm
************************************************************************************************************************************************/



“jiky”不是存储在静态存储区,是常量存储区

[此贴子已经被作者于2006-4-14 16:02:13编辑过]

2006-04-14 16:01
rellorsky
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2006-4-14
得分:0 
这个地方你说错了
2006-04-14 16:03



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




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

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