c/c++ 基础(三) 指针与数组

来源:互联网 发布:学生网络课程心得 编辑:程序博客网 时间:2024/05/01 10:47

直接上代码,观察结果:

#include <iostream>#include <stdlib.h>using namespace std;int main(){int Number [5]={10,20,30,40,50};int *p=Number;/*说明:数组正常遍历  */cout<<endl<<"-------A-------- Number[i]---------------"<<endl;for (int i = 0; i < 5; ++i){cout<<(Number[i])<<endl;}/*说明:数组名是一个常量指针,指向数组的第一个元素    Number是一个指向Number数组的第一个元素的指针(也即是一个地址);  对Number进行加减运算,如Nuber+i(指向的是Number中的第i个对象,不是离Number开头的i字节处),也即Number首地址+i*(sizeof(int))*/cout<<endl<<"-------B-------- Number+i---------------"<<endl;for (int i = 0; i < 5; ++i){cout<<(Number+i)<<endl;}/*   说明:*(p+i) : 取第(p+i*(sizeof(int))地址处元素的值*/cout<<endl<<"-------C-------- *(p+i)---------------"<<endl;for (int i = 0; i < 5; ++i){cout<<*(p+i)<<endl;}/*   说明:*p+i : 指针p指向地址处的值+i*/cout<<endl<<"-------D-------- *p+i---------------"<<endl;for (int i = 0; i < 5; ++i){cout<<*p+i<<endl;}/*   说明:数组名用作常来指针是合法的,常量指针用作数组名也是合法的*/cout<<endl<<"-------E-------- p[i]---------------"<<endl;for (int i = 0; i < 5; ++i){cout<<p[i]<<endl;}/*    *p++是先取出*p的值,然后让p++(*p)++是先取出*p的值,让这个值++*(P++)是先取出*p的值,让p++所以,*p++等价于*(P++)*/// cout<<endl<<"-------F-------- *(p++)---------------"<<endl;// for (int i = 0; i < 5; ++i)// {// cout<<*(p++)<<endl;// }// cout<<endl<<"-------G-------- *p++---------------"<<endl;// for (int i = 0; i < 5; ++i)// {// cout<<*p++<<endl;// }// cout<<endl<<"-------H-------- (*p)++---------------"<<endl;// for (int i = 0; i < 5; ++i)// {// cout<<(*p)++<<endl;// }return 0;}

打印结果如下:



如果要查看FGH的结果,只能是将F/G/H之一注释去掉,即一次只能查看FGH之一的结果。



0 0
原创粉丝点击