| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 371 人关注过本帖
标题:字符指针小问题
只看楼主 加入收藏
zheng3912930
Rank: 1
等 级:新手上路
帖 子:15
专家分:2
注 册:2011-11-10
结帖率:66.67%
收藏
已结贴  问题点数:20 回复次数:2 
字符指针小问题
char * str="nihao!";
这个不是动态分配的吧!
这样有没有危险!会不会覆盖已有的空间!
char * str=new char[7];
str="nihao!" 和上一个有什么区别?
搜索更多相关主题的帖子: 空间 nihao 动态 
2012-06-25 10:52
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9032
专家分:54066
注 册:2011-1-18
收藏
得分:10 
char * str=new char[7];
str="nihao!"
???
2012-06-25 12:03
jiantiewen
Rank: 5Rank: 5
等 级:职业侠客
威 望:2
帖 子:61
专家分:307
注 册:2012-6-22
收藏
得分:10 
char * str="nihao!";
用str这个字符型指针变量存储"nihao!"这个字符串常量的起始地址。系统分配能容纳char*的内存空间(32位系统用4字节)供编程者指定字符或字符串的位置。
char * str=new char[7];
是把指针str指定为系统专门分配出来的7字节长度的内存开始位置。
str="nihao!";
又把str的值改为这字符串常量的起始地址。跟第一种结果相同,但是却要系统无辜地浪费了7个字节的内存空间(是完全没有用到的)。

就像是,你花了钱去买了个新房子(new char[7]),得到国家(系统)批下来的房产证(char* str)。
但是你却硬是要把房产证上地址这一项的内容(str的值)改成你住着的房子的地址("nihao!"这字符串常量的起始地址)。
这种事情你说正常不正常?
2012-06-26 01:18
快速回复:字符指针小问题
数据加载中...
 
   



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

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