复杂指针的声明

1.int a;
一个整型数
2.int *a;
一个指向整型数的指针
3.int **a;
一个指向指针的指针,它指向的指针是指向一个整型数的
4.int a[10];
一个有10个整型数的数组
5.int *a[10];
一个有10个指针的数组,每个指针是指向对应整型数的
6.int (*a)[10];
一个指向有10个整型数数组的指针
7.int (*a)(int);
一个指向函数的指针,该函数有一个整型参数并且返回一个整型数
8.int (*a[10])(int);
一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数

其中扩展知识:解读复杂指针声明
使用右左发扎:首先从最里面的圆括号看起,然后往右看,再往左看。每当遇到圆括号时,就应该调转阅读方向。一旦解析完圆括号里面所有的东西,就跳出圆括号。重复这个过程,直到声明结束。

int (*func)(int *p);

首先找到那个未定义的标识符,就是func,它的外面有一对圆括号,而且左边是一个号,这说明func是一个指针,然后跳出这个圆括号,先看右边,也是一个圆括号,说明(*p)是一个函数,而func是一个指向这类函数的指针,就是一个函数指针,这类函数具有int类型的形参,返回值类型是int

今天笔试还遇到一道题 int **a[3][4];求sizeof(a)= ?
a[3][4]是一个二维数组 ,而*a,则告诉我们这个数组中的元素都是指针,一共有12个指针单元,因而sizeof(a)= 48;//32位操作系统下*

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值