C++预科——C语言指针回顾(一)理解指针和指针指向的内容
来源:互联网 发布:php抓取网页匹配url 编辑:程序博客网 时间:2024/03/29 17:23
指针是C语言的灵魂,但 C++是不喜欢使用指针的,它喜欢使用引用。其实类似的还有,C++不喜欢使用字符数组,而喜欢用字符串。但是呢,这不意味着就不用掌握指针了,掌握指针的精髓还是非常非常有必要的。首先,我先说一下如何理解一个复杂的数据类型。下面几个类型,你看看知道 P 是什么意思不
int p;int *p;int p[10];int *p[10];int (*p)[10];int **p;int p(int);int (*p)(int)int*( *p (int) )[10];如果你能完全说出 P 到底表示的是什么,到底指向的是什么,下面的东西就不用看了。
我们具体来看一下。int p ; 没什么难度,p就是一个普通的整型变量。
int *p ; 从p开始,p先与* 结合,说明 p 是一个指针(指针变量的简写),然后再与 int 类型结合,说明指针指向的内容为 int 型,所以 p 是一个返回整型数据的指针。
int p [10]; 从p开始,p 先与 [ ] 结合,说明 p是一个数组,然后再与 int 类型结合,说明数组存放的元素是 int 类型,所以,p是一个由整型数据组成的数组。
int *p[10]; 从p开始,p先与[ ] 结合,(因为 [ ] 的优先级比 * 要高)。说明 p 是一个数组,再与 * 结合,说明数组存放的元素是指针类型。再与 int 结合,说明指针指向的内容的类型是整型的。所以,p 是一个由返回整型数据的指针组成的数组。又称“指针数组”:它是数组,数组里面的元素是指针类型。
int (*p)[10]; 从p处开始,先与 * 结合,说明 p 是个指针。然后再与 [ ] 结合,说明指针指向的是数组。再与 int 结合,说明数组里面的元素是 Int 类型。所以,p 是一个指向包含10个整型数据的数组的指针。又称“数组指针”:它是指针,指向的内容是数组。
int **p; 从 p 处开始,先与 * 结合,说明它是个指针。再与 * 结合,说明它指向的是指针,又称“指向指针的指针”。最后与 int 结合,说明它指向的元素是整型。二级指针一般与数组结合起来用,超过二级的指针,一般不用,太复杂了,没必要用了,有其它方法可以代替。
int p (int); p 先与()结合,说明它是个函数,函数形参是 int 类型的。再与外面那个 int 结合,说明它的返回值是整型。
int (*p)(int); p 先与 * 结合,说明它是一个指针,然后再与 ()结合,说明指向的是个函数,函数有个形参为 int 类型。再与外面的 int 结合,说明函数的返回值类型是 int 类型。所以, p 是一个指向有一个整型形参 且返回值是整型的函数的指针。
最后一个,终极boss了~~p先与()结合,说明它是个函数。再与 * 结合,说明它返回值为指针。再与 [ ] 结合,说明返回的指针指向的是一个数组。再与 * 结合,说明数组里存放的元素是指针。再与 int 结合,说明该指针指向的元素是整型。p 是一个参数为整型数据且返回一个指向由10个整型指针变量组成的数组的指针变量的函数。
是不是有点晕~~多思考一下就好啦~大家都是从这儿过来的。
- C++预科——C语言指针回顾(一)理解指针和指针指向的内容
- C++预科——C语言指针回顾(二)理解指针的类型和指针的值
- C++预科——C语言指针回顾(三) 指针的运算
- C++预科——C语言指针回顾(四) 指针与数组之间的关系
- 再谈C语言指针—指向另一指针的指针
- 再谈C语言指针—指向另一指针的指针
- c语言指针,指向指针的指针
- C语言指针数组和指向指针的指针
- C语言二级指针(指向指针的指针)
- C语言指针(二)指向指针的指针
- 98 C语言二级指针(指向指针的指针)
- C语言:指向指针的指针
- C语言:指向指针的指针
- C语言:指向指针的指针
- c语言 指向指针的指针
- C语言指向指针的指针
- C语言指向指针的指针
- C语言指针---指向函数的指针
- python中os模块中文帮助--收藏,以后学习
- ASP.NET – Web 页面
- Android 删除多个activity的类,进入多个activity
- ZZULIOJ【1088】手机短号【输入输出格式】
- php 支付宝App支付服务端操作
- C++预科——C语言指针回顾(一)理解指针和指针指向的内容
- 单片机按键的定时器消抖处理
- 浏览器异常捕获(适用场景:解决报错后,程序无法执行的问题)
- Tomcat配置
- 笔记
- C# 给某个方法设定执行超时时间
- HDU
- localStorage的使用总结
- Android thinker