- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
设计考虑 将这些数据作为命令行的参数 从argc得到数据的个数 从argv得到每一个数值,但注意数值是以字符串表示,要进行计算,必须把它转换成真正的数值 由于每个数据都要转换,而且这个工作很独立,所以将它设计成一个函数 字符串形式的数字转换到真正的数值 int ConvertStringToInt(char *s) { int num = 0; while(*s) { num = num * 10 + *s - 0; ++s; } return num; } 计算程序 int main(int argc, char *argv[]) { int sum = 0; for (int i = 1; i argc; ++i) sum += ConvertStringToInt(argv[i]); cout sum / (argc - 1) endl; return 0; } 指针数组与多级指针 指针数组 Main函数的参数 多级指针 多级指针 指针指向的内容还是一个指针,称为多级指针 如有定义:char *string[10]; string是一个数组,数组元素可以通过指针来访问。如果p是指向数组string的某一个元素,那么p指向的内容是一个指向字符的指针,因此p就是一个多级指针。string也是一个多级指针,不过是一个常指针 多级指针的定义 两级指针:类型名 **变量名; 三级指针:类型名 ***变量名; 如:int **q; 表示q指向的内容是一个指向整型的指针。可以这样使用:int x=15, *p=x; q = p; 同样:char **s; 表示s指向的内容是一个指向字符的指针 q p 15 s “abcde” 多级指针的应用 可以用指向指针的指针访问指针数组的元素。如 #include iostream using namespace std; int main() { char *city[] = {aaa, bbb, ccc, ddd, eee}; char **p; for (p=city; pcity+5; ++p) cout *p endl; return 0; } 输出结果: aaa bbb ccc ddd eee 第7章 间接访问—指针 指针的概念 指针运算与数组 动态内存分配 字符串再讨论 指针作为函数参数和返回值 指针数组与多级指针 指向多维数组的指针 指向函数的指针 二维数组与指针 int a[3][4];等价于定义了3个变量 a a[1] a[2] a[0] 1 2 3 4 5 6 7 8 9 10 11 12 指向一维数组的指针 a[ ]是一个指针数组,它的每个元素是一个整型指针,指向每一行的第一个元素。a是一个指向一维数组的指针,指向a[ ]的第一个元素。对a加1,事实上是跳到下一行 指向一维数组的指针可以这样定义: 类型名 (*指针变量名)[一维数组的元素个数]; 注意:圆括号不能省略,如果省略了圆括号就变成了指针数组 等价于a[i][j]的表达式 a[i][j] *(a[i] + j) (*(a + i))[j] *(*(a + i) + j) *(a[0][0] + 5 * i + j) int a[3][5]; 用指向数组的指针输出二维数组a int (*p)[4], *q; for (p = a; p a + 3; ++p) { //每一行 for (q = *p; q *p+4; ++q) //每一列 cout *q \t; cout endl; } 注意:如果输出a和a[0],这两个值是相同的。但是,这两个值的含义是不同的,前者是第0行的首地址,它的类型是指向由四个元素组成的一位数组的首地址,后者是第0行第一个元素的地址,它的类型是整型指针 动态的二维数组 方法一:用一维动态数组 将它按行序转换成一维数组,用动态的一维数组存储。如一个3行4列的矩阵a可以存储为12个元素的一维数组 访问i行j列的元素转换成访问一维数组的第4*i+j个元素 方法二:用指向指针的指针,可以用a[i][j]访问 用指向指针的指针指向一个一维的指针数组 指针数组中的每个元素指向矩阵的每一行的第一个元素 int main() { int **a, i, j, k = 0; a = new int *[3];
您可能关注的文档
最近下载
- 内务整理班会.pptx VIP
- 《世界的物质性》课件.ppt VIP
- 长沙理工大学继电保护课程设计—水电站35kV线路电流保护设计三段式电流保护整定计算工程设计.doc
- 1998—2019北京市中考数学试卷含详细解答(历年真题).pdf VIP
- 2025年新高考英语复习 听力满分策略+真题练习(学生版+解析版)含听力音频 .docx VIP
- DZT0316—2018-砂石行业绿色矿山建设规范.pdf VIP
- T∕BECC 002-2024 智算中心技术要求和评估方法.pdf
- 自我管理(中职通用职业素质课程)全套教学课件(220页).pptx VIP
- 医护人员岗位能力提升策略.pptx VIP
- 智能加工技术:课程标准解读与学习指南.docx VIP
文档评论(0)