以下的c++ progamme code, 有2个问题求解答
时间:2013-05-22
来源:互联网
#include<iostream>
using namespace std;
void mdyArray(int arrElem[], int nElement)
{
int *iPtr, iZ, iX;
iPtr = arrElem;
int test = 2;
do{
iX = test;
if(iX < nElement)
iZ=3;
else
iZ=9;
if(iX>= nElement)
iX = iX %(nElement - 1);
*(iPtr + iX)= *(iPtr + iX) + iZ;
test+=3;
}while(test< 2*nElement - 1);
}
int main()
{
const int MAX_ELEMENT = 14;
int elemA[MAX_ELEMENT] = {22,23,25,26,27,28,29,
41,42,43,44,45,46,48};
mdyArray(elemA, MAX_ELEMENT);
for(int i = 2; i < MAX_ELEMENT - 3; i++)
cout<<elemA<< ":>";
cout<<endl;
return 0;
}
请问在do-while loop入面的iPtr 一开始的数值是多少?
在完成第1次do-while loop 后, iPtr的数值有改变吗?
Thank you for help
using namespace std;
void mdyArray(int arrElem[], int nElement)
{
int *iPtr, iZ, iX;
iPtr = arrElem;
int test = 2;
do{
iX = test;
if(iX < nElement)
iZ=3;
else
iZ=9;
if(iX>= nElement)
iX = iX %(nElement - 1);
*(iPtr + iX)= *(iPtr + iX) + iZ;
test+=3;
}while(test< 2*nElement - 1);
}
int main()
{
const int MAX_ELEMENT = 14;
int elemA[MAX_ELEMENT] = {22,23,25,26,27,28,29,
41,42,43,44,45,46,48};
mdyArray(elemA, MAX_ELEMENT);
for(int i = 2; i < MAX_ELEMENT - 3; i++)
cout<<elemA<< ":>";
cout<<endl;
return 0;
}
请问在do-while loop入面的iPtr 一开始的数值是多少?
在完成第1次do-while loop 后, iPtr的数值有改变吗?
Thank you for help
作者: C.kahei 发布时间: 2013-05-22
Run一次不可以吗...???
指向阵列第一个元素...没有改变
指向阵列第一个元素...没有改变
作者: cheng_chai_fung 发布时间: 2013-05-22
引用:
原帖由 cheng_chai_fung 於 2013-5-22 12:20 PM 发表Run一次不可以吗...???
指向阵列第一个元素...没有改变

所以想问下一开始 iPtr系咪即系elemA[0]?
作者: C.kahei 发布时间: 2013-05-22
其实呢...我一早大概会觉得...你说的"iPtr 一开始的数值"是iPtr指向的记忆体里的资料
这个都是一般新手都搞不清的概念...C++是一个十分著重pointer...memory...data相互关系的语言
所以要分清
iPtr里保存的是某一数字...数字代表某一memory的address
至於address所指的那里...内里保存的内容才是我们加载到memory的"data"
而且, iPtr是int*的类型的话...
*(iPtr + iX)应该写成iPtr[iX]会比较易理解
[ 本帖最后由 cheng_chai_fung 於 2013-5-22 08:16 PM 编辑 ]
这个都是一般新手都搞不清的概念...C++是一个十分著重pointer...memory...data相互关系的语言
所以要分清
iPtr里保存的是某一数字...数字代表某一memory的address
至於address所指的那里...内里保存的内容才是我们加载到memory的"data"
而且, iPtr是int*的类型的话...
*(iPtr + iX)应该写成iPtr[iX]会比较易理解
[ 本帖最后由 cheng_chai_fung 於 2013-5-22 08:16 PM 编辑 ]
作者: cheng_chai_fung 发布时间: 2013-05-22
引用:
原帖由 cheng_chai_fung 於 2013-5-22 08:14 PM 发表其实呢...我一早大概会觉得...你说的"iPtr 一开始的数值"是iPtr指向的记忆体里的资料
这个都是一般新手都搞不清的概念...C++是一个十分著重pointer...memory...data相互关系的语言
所以要分清
iPtr里保存的是某 ...
所以我冇改到入面d野...不过我已经知道自己错咩了..
我之前挂住望function入面个do-while loop..冇留意main function入面个for-loop..
所以错左个result...而家已经明白了..
作者: C.kahei 发布时间: 2013-05-22
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28