A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© cctao 中级黑马   /  2014-10-26 23:43  /  936 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

在论坛中看到好多同学问关于指针的问题,正好我在csdn有发表指针的文章:
http://blog.csdn.net/dashudeshu/article/details/40458527
下面我就把最基本的一些概念奉上:
指针与数组:
  int a[3]={1,2,3};
我们可以通过a[i];(i<3)来访问数组中的各个元素,我们单独看a,a就是这个数组的其实地址,即a是一个指针,那么我们也可以*(a+i)来查看数组a[3]的各个元素。
当我们定义int *p =a;即p==a,*(p+i)一样可以访问 通过数组名访问数组元素 。
注意:
       我们可以用p++ 来变换p的来指向下一个元素地址,但是a++就会出错,你只要记住a是常量永远只想数组的起始地址就可以了。当声明p时被声明为指针常量,那么p++也会报错。
                int *const pa = a; //此时pa就是一个指针常量,无法更改。
  再加一个小知识点:
      int *const pa = a;与int  const  *pa;有什么不同?刚开始我也没弄明白,后来搞清楚const的位置就感觉原来也没什么,接下来认真看我将这俩句代码变型:
1, int *const pa = a;=========》 int *(const pa) = a;
  2,int  const  *pa;    =========》 int  const ( *pa);
1句理解:pa是指向a的指针,const pa 即pa是一个常量指针,不能更改pa的值但你可以通过*pa来修改a的值
2句理解:*pa是a的值,const *pa 即指针pa是一个指向int型常量的指针,可以更改其值即它可以重新指向另一个地址 但是不能通过 *pa改变a的值。

2 个回复

倒序浏览
学习啦。。。
回复 使用道具 举报
学习啦
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马