C指针
来源:互联网 发布:qserialport 发送数据 编辑:程序博客网 时间:2024/06/06 18:08
指针:基础概念
指针数组:(int数组,char数组),概念类比,指针数组,就是装有指针的数组 char *p[2];
数组指针:(int指针,float指针),概念类比,数组指针,就是指向数组的指针 char (*p)[2]; 数组指针是二维指针
多重指针: char **p;
函数指针:指向函数的指针,该指针原型必须和要指向的函数原型一致(返回值 ,参数列表)。函数的本质是内存地址。int (*p)(int ,int);
这个函数指针,比如int (*p)(int ,int); 像这样的,该指针指向的函数返回值是int ,不是int*;这点不要搞混淆
详细说明一下:
申明c指针变量,并不开辟要储存其他值的地址空间,仅仅是自己本身的空间。
数组指针:本质是指针,指向数组首元素的地址。例如:
char (*p)[2]是数组指针,指针p指向数组的首地址,这个指针不可移动。
指针数组:本质为数组,数组每一个元素是一个指针。例如:
*p[2]是指针数组,实质是一个数组,里面的两个元素都是指针。
区分是指针数组,还是数组指针,就看*和[]谁的体现的级别高:
如果 * 用括号括起来的,说明* 体现的优先级高,是指针,所以是数组指针(例如 char (*p)[2]);
[]比* 的优先级高,如果没有括号的话,自然就是[]体现的优先级高于 *,是数组,所以是指针数组(例如 char *p[2]);
一个数组:int a[10]
a 和 &a 在数值上是相等的,在语义上不同,a仅仅代表首元素的首地址,代表第一个元素地址;&a整个数组的首地址,代表数组地址;
举例说明一下:a + 1 和 &a + 1 的区别:a + 1 跳过4 个字节;&a + 1 跳过40个字符。
指针数组 等价于二重指针
数组指针 等价于二维数姐
- C指针的指针
- c 指针的指针
- C--指针
- C-指针
- C指针
- C指针
- C指针
- C---指针
- c 指针
- C指针
- C指针
- C指针
- C 指针
- c指针
- C指针
- C 指针
- C 指针
- C 指针
- jquery中的attr属性
- Filter(过滤器)和Intecepter(拦截器)的区别
- 一句代码轻松在AndroidStudio 中使用 HttpClient
- 关于QObject::connect函数参数问题
- 请求重定向并且传递参数的方式
- C指针
- isset和empty的区别
- BZOJ 4517 [Sdoi2016]排列计数
- pandas.DataFrame.to_csv
- 通过Java代码将数据追加到文件尾部的方法总结
- Ueditor自定义图片上传接口-PHP版
- Java学习,day02: 数据类型强制转换问题
- Python学习总结
- 记录:vs中使用Unicode字符集时,wcout的问题