| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1435 人关注过本帖
标题:C++里动态数组与指针的问题
取消只看楼主 加入收藏
sy_141618
Rank: 1
等 级:新手上路
威 望:1
帖 子:68
专家分:0
注 册:2006-6-18
收藏
 问题点数:0 回复次数:7 
C++里动态数组与指针的问题

1 string *psa=new string[10];
2 cin >> *psa;
3 cout << *psa;

Q1 书上说动态分配的优点是能在运行时决定数组大小,但1是书上第1个例子的1句话,23是我加上去的,运行仍然通过,那这个[10]是什么意思呢? 作业要你处理可变长的输入到一个字符数组,所以我就这样写了。

Q2 while(cin >> *psa) 到底在输入什么字符的情况下循环才会退出?我输入\0没反应。。

Q3 int *pia2=new int[10]();
书上说()就是初始化,对于这个内置函数来说就等于初始化为0了
但是cout << *pia2;后输出3998880


[此贴子已经被作者于2007-7-7 13:44:27编辑过]

搜索更多相关主题的帖子: 指针 动态 
2007-07-07 13:42
sy_141618
Rank: 1
等 级:新手上路
威 望:1
帖 子:68
专家分:0
注 册:2006-6-18
收藏
得分:0 
我是想退出循环继续下面代码,类似判断这样的意思,就是输入的只能是字母和数字吧~不好意思,前面没把限制说清楚。
2007-07-07 13:58
sy_141618
Rank: 1
等 级:新手上路
威 望:1
帖 子:68
专家分:0
注 册:2006-6-18
收藏
得分:0 

1 string *psa=new string[10];
2 *psa="1234567890123"
3 cout << *psa;

分配了10个大小的STRING,但是为什么我这样编写代码,编译运行都能正常通过呀?那这个10还有什么用?

2007-07-07 14:01
sy_141618
Rank: 1
等 级:新手上路
威 望:1
帖 子:68
专家分:0
注 册:2006-6-18
收藏
得分:0 

string *psa=new string[0];
*psa="fsdafasdfafda";
产生运行时错误。。。
但是把0改成1就可以了~
书上说“[0]是合法的,但是不能进行任何解引用操作,因为它毕竟没有指向任何元素。”

果然哦。哈。。F6可以退出循环。。怎么实现当输入的是数字就退出循环呢?

2007-07-07 14:35
sy_141618
Rank: 1
等 级:新手上路
威 望:1
帖 子:68
专家分:0
注 册:2006-6-18
收藏
得分:0 

编译没错~~运行错误,因为没有对象~~
想要不是输入字母就退出这判断怎么做啊??不会~~

2007-07-07 16:20
sy_141618
Rank: 1
等 级:新手上路
威 望:1
帖 子:68
专家分:0
注 册:2006-6-18
收藏
得分:0 
对啊对啊。。我也知道这样可以。。那10到底是什么呢?
又来个问题,(10)和[10]一样?
2007-07-07 16:41
sy_141618
Rank: 1
等 级:新手上路
威 望:1
帖 子:68
专家分:0
注 册:2006-6-18
收藏
得分:0 
回复:(aipb2007)动态数组允许你数组的大小在运行时...

我的意思是 就算我设成10了 我放进去15个字符外加结束符 正常打印也能全部打出来啊~ 那后面的[10]什么用啊

2007-07-07 18:07
sy_141618
Rank: 1
等 级:新手上路
威 望:1
帖 子:68
专家分:0
注 册:2006-6-18
收藏
得分:0 
啊!!!!原来是这样!!!!你好厉害啊!!!你第1个回复我就没看懂!!!终于知道啦~~KKK 谢谢!
2007-07-07 18:25
快速回复:C++里动态数组与指针的问题
数据加载中...
 
   



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

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