对于C语言复杂指针类型的分析
转载自:http://www.slyar.com/blog/complicated-point-type.html
int p;
p是一个普通的整型变量。
int *p;
1、p与*结合,说明p是一个指针。
2、*p与int结合,说明指针所指向的内容的类型是整型的。
所以p是一个返回整型数据的指针。
int p[5];
1、p与[]结合,说明p是一个数组。
2、p[5]与int结合,说明数组里的元素是整型的。
所以p是一个由整型数据组成的数组。
int *p[5];
1、p与[]结合(因为其优先级比*高),说明p是一个数组。
2、p[5]与*结合,说明数组里的元素是指针类型。
3、*p[5]与int结合, 说明指针所指向的内容的类型是整型的。
所以p是一个由返回整型数据的指针所组成的数组。
int (*p)[5];
1、p与*结合,说明p是一个指针。
2、*p与[]结合,说明指针所指向的内容是一个数组。
3、(*p)[5]与int结合,说明数组里的元素是整型的。
所以p是一个指向由整型数据组成的数组的指针。
int **p;
1、p与*结合,说明p是一个指针。
2、*p与*结合,说明指针所指向的元素是指针。
3、**p与int结合,说明指针所指向的内容的类型是整型的。
所以p是一个指向整型指针的指针。
int p(int);
1、p与()结合,说明p是一个函数。
2、p()与()里的int结合,说明函数有一个int型的参数。
3、p(int)与外面的int结合,说明函数的返回类型是整型。
所以p是一个有一个整型参数且返回类型为整型的函数。
int (*p)(int);
1、p与指针结合,说明p是一个指针。
2、*p与()结合,说明指针指向的是一个函数。
3、(*p)()与()里的int结合,说明函数有一个int型的参数。
4、(*p)(int)与最外层的int结合,说明函数的返回类型是整型。
所以p是一个指向有一个整型参数且返回类型为整型的函数的指针。
int *(*p(int))[5];
1、从p处开始,先与()结合,说明p是一个函数.
2、p()与()里的int结合,说明函数有一个int型的参数。
3、p(int)与外面的*结合,说明函数返回的是一个指针。
4、(*p(int))与[]结合,说明返回的指针指向的是一个数组。
5、(*p(int))[5]与*结合,说明数组里的元素是指针。
6、*(*p(int))[5]与int结合,说明指针所指向的内容的类型是整型的。
所以p是一个参数为一个整数据且返回一个指向由整型指针变量组成的数组的指针变量的函数。
对于C语言复杂指针类型的分析的更多相关文章
- go语言的指针类型
一.指针与引用的相关概念 什么是指针? 指针,全称为指针变量,是用来存储内存地址的一种变量.程序中,一般通过指针来访问其指向的内存地址中的内容(数据). 什么是引用? 引用,是C++中提出来的一种新的 ...
- c语言定义指针类型需注意事项
1)在定义说明语句中,指针变量名之前的星号“*“是指针变量的修饰符,也就是说它所修饰的变量是指针变量. 2)指针变量是用它们所指向的对象类型来区分的.如定义 int *ip,类型int并不是指针的类型 ...
- C语言之指针用法总结
C语言指针概述:1.计算机系统中,无论是存入或是取出数据都需要与内存单元打交道,物理器件通过地址编码寻找内存单元.2.地址编码是一种数据,C语言的指针类型正是为了表示这种计算机所特有的地址数据.3.存 ...
- C++语言中数组指针和指针数组彻底分析
################################# ## 基本知识 ## ...
- Swift中对C语言接口缓存的使用以及数组、字符串转为指针类型的方法
由于Swift编程语言属于上层编程语言,而Swift中由于为了低层的高性能计算接口,所以往往需要C语言中的指针类型,由此,在Swift编程语言刚诞生的时候就有了UnsafePointer与Unsafe ...
- C语言之void类型及void指针 分类: C/C++ 2015-07-13 11:24 8人阅读 评论(0) 收藏
原文网址:http://www.cnblogs.com/pengyingh/articles/2407267.html 1.概述 许多初学者对C/C 语言中的void及void指针类型不甚理解,因此在 ...
- C语言指针类型 强制转换
关于C语言指针类型 强制转换 引用一篇文章: C语言中,任何一个变量都必须占有一个地址,而这个地址空间内的0-1代码就是这个变量的值.不同的数据类型占有的空间大小不一,但是他们都必须有个地址,而这个 ...
- Android For JNI(五)——C语言多级指针,结构体,联合体,枚举,自定义类型
Android For JNI(五)--C语言多级指针,结构体,联合体,枚举,自定义类型 我们的C已经渐渐的步入正轨了,基础过去之后,就是我们的NDK和JNI实战了 一.多级指针 指针的概念我们在前面 ...
- C语言错误 指针的类型错误
//指针的类型错误 #include<stdio.h> #include<stdlib.h> #include<string.h> //用const来限制形参的指向 ...
随机推荐
- 实例:对2个Makefile的备注
实例1:Makefile编译链接简单.c函数 example.c Makefile exe: example.c gcc example.c -o exe clean: rm exe 执行效果: 实例 ...
- Referenced file contains errors (http://www.springframework.org/schema...错误
Referenced file contains errors (http://www.springframework.org/schema...错误 Referenced file contains ...
- 有关日期的函数操作用法总结,to_date(),trunc(),add_months();
相关知识链接: Oracle trunc()函数的用法 oracle add_months函数 Oracle日期格式转换,tochar(),todate() №2:取得当前日期是一个星期中的第几天,注 ...
- C#体检套餐项目
使用泛型集合写的一个小项目 1.要实现新建体检套餐,并且如果已经有了该体检套餐就不能再次新建, 2.要实现套餐列表动态更新,没添加一个体检套餐,在套餐列表里就自动添加一项; 3.向当前套餐类表里添加检 ...
- [LeetCode] Binary Tree Paths 二叉树路径
Given a binary tree, return all root-to-leaf paths. For example, given the following binary tree: 1 ...
- javascript正则表达式(RegExp)简述
首先我们来思考以下两个个场景 我们使用window操作系统,有时候需要找一个文件,刚刚好这个文件我不知道放哪里去了,这个时候我们该怎么办呢? 我们使用word写论文的时候,不小心将"订价&q ...
- VLC 资料整理
libvlc_media_t的创建 创建libvlc_media_t有两种方法:libvlc_media_new_path()和libvlc_media_new_location().简单描述一下这两 ...
- php stdclass转数组
打印输出是这样 object(stdClass)[11] //object public 'xx' => string 'xxxxxx' (length=21)可用函数处理 get_object ...
- SQL注入判断方法总结(持续更新)
http://e.com/1.php?id=1 http://e.com/1.php?id=1-- sd http://e.com/1.php?id=aaa http://e.com/1.php?id ...
- CentOS 7网卡网桥、绑定设置
一.网卡桥接设置: 1.网卡配置文件: [root@localhost /]# vim /etc/sysconfig/network-scripts/ifcfg-enp8s0 TYPE=Etherne ...