找回密码
 注册
搜索
热搜: 回贴
  • 前程无忧官网首页 有什么好的平台可以
  • 最新的销售平台 互联网营销的平台有哪
  • 制作网页的基本流程 网页制作和网页设
  • 【帝国CMS】输出带序号的列表(数字排
  • 网站建设公司 三一,中联,极东泵车的
  • 织梦 建站 织梦网站模版后台怎么更改
  • 云服务官网 哪些网站有免费的简历模板
  • 如何建网站要什么条件 建网站要用什么
  • 吉林市移动公司电话 吉林省退休人员网
  • 设计类毕业论文 网站设计与实现毕业论
查看: 878|回复: 9

C++里动态数组与指针的问题

[复制链接]
发表于 2009-11-2 01:38:25 | 显示全部楼层 |阅读模式 IP:江苏扬州
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
发表于 2009-11-2 01:38:26 | 显示全部楼层 IP:江苏扬州
10表示有10个这样的string

F6可以退出
回复

使用道具 举报

发表于 2009-11-2 01:38:27 | 显示全部楼层 IP:江苏扬州
我是想退出循环继续下面代码,类似判断这样的意思,就是输入的只能是字母和数字吧~不好意思,前面没把限制说清楚。
回复

使用道具 举报

发表于 2009-11-2 01:38:29 | 显示全部楼层 IP:江苏扬州
1 string *psa=new string[10];
2 *psa="1234567890123"
3 cout << *psa;

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

使用道具 举报

发表于 2009-11-2 01:38:30 | 显示全部楼层 IP:江苏扬州
以下是引用sy_141618在2007-7-7 13:58:20的发言:
我是想退出循环继续下面代码,类似判断这样的意思,就是输入的只能是字母和数字吧~不好意思,前面没把限制说清楚。
F6同样可以帮你达到这样的功能。
回复

使用道具 举报

发表于 2009-11-2 01:38:32 | 显示全部楼层 IP:江苏扬州
以下是引用sy_141618在2007-7-7 14:01:16的发言:

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

分配了10个大小的STRING,但是为什么我这样编写代码,编译运行都能正常通过呀?那这个10还有什么用?
这个时候*psa等同于string[0],自然正确。。
回复

使用道具 举报

发表于 2009-11-2 01:38:33 | 显示全部楼层 IP:江苏扬州
string *psa=new string[0];
*psa="fsdafasdfafda";
产生运行时错误。。。
但是把0改成1就可以了~
书上说“[0]是合法的,但是不能进行任何解引用操作,因为它毕竟没有指向任何元素。”

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

使用道具 举报

发表于 2009-11-2 01:38:37 | 显示全部楼层 IP:江苏扬州
以下是引用sy_141618在2007-7-7 14:35:01的发言:

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

果然哦。哈。。F6可以退出循环。。怎么实现当输入的是数字就退出循环呢?
汗,0当然会错,因为这个字符串数组中元素个数为0,编译合法,运行会错(即不可以对它进行操作)
要想输入数字就退出,那就自己判断吧
回复

使用道具 举报

发表于 2009-11-2 01:38:39 | 显示全部楼层 IP:江苏扬州
因为这个字符串数组中元素个数为0,编译合法

编译不合法,不能给0,int a[0]编译回出错.
回复

使用道具 举报

发表于 2009-11-2 01:38:42 | 显示全部楼层 IP:江苏扬州
以下是引用天空の城在2007-7-7 14:42:34的发言:

因为这个字符串数组中元素个数为0,编译合法

编译不合法,不能给0,int a[0]编译回出错.
你这是静态数组,当然不合法,用new 生成的动态数组就可以为0
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|小黑屋|最新主题|手机版|微赢网络技术论坛 ( 苏ICP备08020429号 )

GMT+8, 2024-9-29 23:36 , Processed in 0.191240 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表