输出有10个元素的整型数组各元素的值

(1)下标法

编写程序:

(2)指针法:

将上面程序第7行和第10行的a[i]改为"*(a+i)"。

(3)用指针变量指向数组元素

编写程序:

运行结果:

对3种方法的比较:
        方法(1)和(2)的执行效率是相同的。C++编译系统是将a[i]转换为*(a+1)处理的,对每个a[i]都分别计算地址a+ixd,然后访问该元素。第(3)种方法比方法(1)、(2)快,用指针变量直接指向元素,不必每次都重新计算地址,像p++这样的自加操作是比较快的。这种方法能提高执行效率。
        用下标法比较直观,能直接知道是第几个元素。例如,a[5]是数组中序号为5的元素(注意序号从0算起)。用地址法或指针变量的方法都不太直观,难以很快地判断出当前处理的是哪一个元素。例如,对第(3)种方法,阅读者要仔细分析指针变量p的当前指向,才能判断当前输出的是第几个元素。
        在用指针变量指向数组元素时要注意:指针变量p是被定义为指向整型的对象,它可以指向整型的数组元素,也可以指向数组以后的内存单元。如果有
        int a[10],*p=a;          //指针变量p的初值为&a[0]
        cout<<*(p+10);        //要输出a[10]的值
数组a最后一个有效的元素是a[9],现在要求输出a[10],但C++编译系统并不把它认作非法。系统按p+10xd计算出要访问单元的地址,这显然是a[9]后面一个单元的地址,然后输出这个单元中的内容。如果写成"cout<<a[10];"或"cout<<*(a+10);",情况也一样。这样做虽然是合法的(在编译时不出错),但应避免出现这样的情况,这会使程序得不到预期的结果。这种错误比较隐蔽,初学者往往难以发现。在使用指针变量指向数组元素时,应切实保证指向数组中有效的元素。
        指向数组元素的指针的运算比较灵活,务必小心谨慎。

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-06 22:04:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-06 22:04:03       100 阅读
  3. 在Django里面运行非项目文件

    2024-06-06 22:04:03       82 阅读
  4. Python语言-面向对象

    2024-06-06 22:04:03       91 阅读

热门阅读

  1. Docker命令大全

    2024-06-06 22:04:03       28 阅读
  2. WPS超级会员4年,2024年到手值得!

    2024-06-06 22:04:03       109 阅读
  3. 【python】匿名函数

    2024-06-06 22:04:03       29 阅读
  4. 东方博宜1542 - 小X算排名

    2024-06-06 22:04:03       25 阅读
  5. CSS中绝对定位和百分比问题(CSS中的小细节)

    2024-06-06 22:04:03       30 阅读
  6. CSS变量 -- var() 使用教程

    2024-06-06 22:04:03       23 阅读
  7. CSS简述(1)

    2024-06-06 22:04:03       23 阅读
  8. 9. 媒体查询与响应式设计

    2024-06-06 22:04:03       29 阅读
  9. 网络安全中攻击溯源方法

    2024-06-06 22:04:03       27 阅读
  10. Ant-Design-Vue动态表头并填充数据

    2024-06-06 22:04:03       29 阅读