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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

龙泉

中级黑马

  • 黑马币:-69

  • 帖子:12

  • 精华:0

© 龙泉 中级黑马   /  2016-1-8 22:22  /  1274 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

指针说白了就是地址。指针变量就是用来存放指针(地址)的变量。
1. 变量的指针和指向变量的指针变量
读起来很拗口,说白了就是变量的地址和用来存放变量地址的地址变量。因为一个变量在编译的时候系统要为它分配一个地址,假如再用一个变量来存放这个地址,那么这个变量就叫做指向变量的指针变量,也就是用来存放变量地址的这么一个变量。所谓"指向"就是指存放××的地址,如指向变量的指针变量,"指向"就是指用来存放变量的地址,再如指向数组的指针变量,"指向"就是指存放数组的地址。只要理解了这个,指针也就不难了。另外,还有指向字符串的指针变量,指向函数的指针变量,指向指针的指针变量等。
1) 指针变量的定义
形式:类型标识符 *标识符 如:int *pointer;
要注意两点:*表示pointer是个指针变量,在用这个变量的时候不能写成*pointer, *pointer是pointer指向的变量。一个指针变量只能指向同一个类型的变量。如上面
pointer只能指向int型变量。
2)指针变量的引用
两个有关的运算符:
& 取地址运算符 &a 就代表变量a的地址
* 指针运算符  *a 就代表变量a的值
2. 数组的指针和指向数组的指针变量
数组的指针指数组的起始地址,数组元素的指针指数组元素的地址。
1)指向数组元素的指针变量的定义与赋值
定义和指向变量的指针变量定义相同,c规定数组名代表数组的首地址,即第一个数组元素地址。
2)通过指针引用数组元素
我们通常引用数组元素的形式是a,如果用指针可以这样引用,*(a+i),或定义一个指针变量p,将数组a的首地址赋给p,p=a;然后用*(p+i)引用。
注意:指针变量p指向数组a首地址,则p++指向数组a的下一元素地址,即a[1]的地址。
3)数组名作函数参数
形参数组和实参数组之间并不是值传递,而是共用同一段地址,所以在函数调用过程中如果形参的值发生变化,则实参的值也跟着变化。
4)指向多维数组的指针和指针变量
以二维数组为居多。假设定义了一个二维数组a[3][4],那么
a代表整个二维数组的首地址,也代表第0行的首地址,同时也是第0行第0列的元素的首地址。a +0和a[0]代表第0行首地址,a+1和a[1]代表第一行的首地址。
假设a是一个数组的首地址,那么如果a是一维的,a+I代表第I个元素的地址,如果a是二维的,则a+I代表第I行的首地址。
那么第一行第二列的元素地址如何表示呢?a[1]+2或&a[1][2]或*(a+1)+2。
我们只要记住:在二维数组中a代表整个数组的首地址,a代表第I行的首地址,a与*(a+I)等价就行了。只要运用熟练了就没什么复杂的了。

8 个回复

倒序浏览
说得挺好的。。。。。。。。。。。。
回复 使用道具 举报
不错 不错不错
回复 使用道具 举报
还没有学,即将开始...
回复 使用道具 举报
笑声不断 来自手机 中级黑马 2016-1-17 07:29:15
报纸
恩,还是很完善
回复 使用道具 举报
挺全的。。。。。。。。。。。。。。。。。。。
回复 使用道具 举报
guyuexing 来自手机 中级黑马 2016-1-17 10:00:00
7#
挺好的,学习
回复 使用道具 举报
加油!!!!!!!!!!!!!
回复 使用道具 举报
还不错,挺详细的,有代码例子最好,赞一个
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马