社区
C++ 语言
帖子详情
一个简单问题,不理解
wylove
2004-11-02 01:28:34
这是C++ primer中的一个问题,本人刚学C++,实在不理解,希望各位大虾给予帮助!
下面的代码段是做什么的,有什么严重错误(注意指针pia 的下标操作符的用法是正确的在3.9.2 节中我们会解释其理由)
int *pi = new int( 10 );
int *pia = new int[ 10 ];
while ( *pi < 10 ) {
pia[ *pi ] = *pi;
*pi = *pi + 1;
}
delete pi;
delete [] pia;
...全文
80
8
打赏
收藏
一个简单问题,不理解
这是C++ primer中的一个问题,本人刚学C++,实在不理解,希望各位大虾给予帮助! 下面的代码段是做什么的,有什么严重错误(注意指针pia 的下标操作符的用法是正确的在3.9.2 节中我们会解释其理由) int *pi = new int( 10 ); int *pia = new int[ 10 ]; while ( *pi < 10 ) { pia[ *pi ] = *pi; *pi = *pi + 1; } delete pi; delete [] pia;
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wylove
2004-11-02
打赏
举报
回复
这是C++ primer中的问题,我自己看不出有什么错误!谢谢各位了!
dragonzxh
2004-11-02
打赏
举报
回复
如果按照*pi=10,Pia[10]哪来啊,没有的啊
zxl_llx
2004-11-02
打赏
举报
回复
我的解释
int *pi = new int( 10 );//<-----------为pi开辟空间,并负值10,即*pi=10;
int *pia = new int[ 10 ];//<-----------pia开辟空间
while ( *pi < 10 ) {//<------------派断是否*pi<10
pia[ *pi ] = *pi;//<--------------负值
*pi = *pi + 1;//<--------------自增;
}
delete pi;
delete [] pia;//<----------------删除指针
其实,while没循环,把int *pi = new int( 10 );改成int *pi = new int( 0 );好点
dragonzxh
2004-11-02
打赏
举报
回复
程序改为这样
int *pi = new int( 10 );
int *pia = new int[ 10 ];
while ( *pi >= 10&&*pi<=20 )
{
pia[ *pi-10 ] = *pi;
*pi = *pi + 1;
}
delete pi;
delete [] pia;
dragonzxh
2004-11-02
打赏
举报
回复
再者,pia[]没new 那么多啊
imRainman
2004-11-02
打赏
举报
回复
*pi的初值一开始就为10了,见:int *pi = new int(10) ;
那么while还没循环就退出了~
dragonzxh
2004-11-02
打赏
举报
回复
没啥严重的,呵呵,首先就是循环条件永远为假,呵呵
sutra
2004-11-02
打赏
举报
回复
int *pi = new int( 10 );//申请一个int,初使化为10
int *pia = new int[ 10 ];//申请10个int
while ( *pi < 10 ) {//当先申请的那个int值小于10时循环
pia[ *pi ] = *pi;//以先申请的那个int的值为下标,对指定int数组元素赋值。
*pi = *pi + 1;//先申请的数自增1。
}
delete pi;
delete [] pia;
小弟无能,实在没看出哪不对。当然,要严格地讲,new可以返回NULL,因此应该检查new的返回值。
另外,在这里,首次循环条件就是FALSE,好像不大合理。
Thinking in Java(中文版)(PDF)
同人类任何语言一样,Java为我们提供了一种表达思想的方式。如操作得当,同其他方式相比,随着
问题
变得愈大和愈复杂,这种表达方式的方便性和灵活性会显露无遗。 不可将Java
简单
想象成一系列特性的集合;如孤立地看,有些特性是没有任何意义的。只有在考虑“设计”、而非考虑
简单
的编码时,才可真正体会到Java的强大。为了按这种方式
理解
Java,首先必须掌握它与编程的一些基本概念。本书讨论了编程
问题
、它们为何会成为
问题
以及Java用以解决它们的方法。所以,我对每一章的解释都建立在如何用语言解决一种特定类型的
问题
基础上。按这种方式,我希望引导您一步一步地进入Java的世界,使其最终成为您最自然的一种语言。 贯穿本书,我试图在您的大脑里建立
一个
模型——或者说
一个
“知识结构”。这样可加深对语言的
理解
。若遇到难解之处,应学会把它填入这个模型的对应地方,然后自行演绎出答案。事实上,学习任何语言时,脑海里有
一个
现成的知识结构往往会起到事半功倍的效
Socket编程例子
Socket编程例子
最新okhttp 3.2.0jar包程序文件
最近准备学习这个框架,所以下载了源码和jar包,okhttp是
一个
比较好用的网络请求框架,附上最新的3.2.0的jar包以及帮助文档。
程序员的十个层次(不得不看)
中国的程序员水平比西方程序员水平差,还是中国有许多优秀的程序员达到或超过了西方程序员同等水平呢?要解决这个
问题
,必须先知道程序员有多少种技术层级,每个层级需要什么样的技术水平,然后再比较中国和西方在各个技术层级的人数,就可以知道到底有没有差距,差距有多大。
Android 手把手教您自定义ViewGroup(一)
代码为博客实例代码:http://blog.csdn.net/lmj623565791/article/details/38339817, 有
问题
请博客留言
C++ 语言
65,198
社区成员
250,522
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章