栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言:浅谈各种复杂的声明

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言:浅谈各种复杂的声明

初学者在面对各种复杂的声明面前往往不知所措,甚至可以说一头雾水,不知道从何下手,本文就C语言中各种复杂的声明浅谈一下,希望可以帮助到初学者,下次再遇到复杂的声明时不在迷茫。

我们先来了解一下复杂的声明的一些符号

符号含义
*表示一个指针
( )表示一个函数
[ ]表示一个数组

下面是一些较复杂的声明示例:
如果能够把下面的例子都看懂的话,那说明你很优秀哦~

1.int board[8] [8];	 	//声明一个内含int数组的数组
2.int ** ptr;		    //声明一个指向指针的指针,被指向的指针指向int
3.int * risks[10];		//声明一个内含十个元素的数组,每个元素都是一个指向int的指针
4.int (* rusks)[10];	//声明一个指向数组的指针,该数组内含十个int类型的值
5.int * oof[3] [4];		//声明一个3*4的二维数组,每个元素都是指向int类型的指针
6.int (* uuf)[3] [4];	//声明一个指向3*4二维数组的指针,该数组中内含int类型的值
7.int (*uof[3])[4];		//声明一个3个指针元素的数组,其中每个指针都指向一个内含4个int类型元素的数组

要看懂以上声明,关键要理解 * 【】 ()的优先级。要记住,()【】的优先级相同且大于的优先级,并且()【的结合方向是从左向右。

接下来我们逐个来进行分析:
1.int board 【8】【8】 ;
根据优先级,board先与【8】结合,说明这是一个数组,再与【8】结合,说明这是一个数组的数组,也就是二维数组。

2.int ** ptr;
根据优先级,ptr先与星号结合,说明这是一个指针,再与星号结合说明这是一个指向指针的指针,也就是二级指针。

3.int * risks[10];
根据优先级,ricks先与【10】结合,所以这是一个数组,再与星号结合,说明数组中的元素是指针变量。也就是指针数组

4.int (* rusks)[10];
根据优先级,rusks先与星号结合,说明这是一个指针,再与【10】结合,说明这是一个指向数组的指针,也就是数组指针

5.int * oof[3] [4];
根据优先级,oof先与【3】结合,说明这是一个数组,再与【4】结合说明这是一个数组的数组,也就是二维数组,再与星号结合,说明二维数组中的每个元素都是指针变量。

6.int (* uuf)[3] [4];
根据优先级,uuf先与星号结合,说明这是一个指针,再与【3】结合,说明这是一个指向数组的指针,再与【4】结合,说明只这是一个指向一个二维数组的指针。

7.int (*uof[3])[4];
根据优先级,uof先和【3】结合,说明这是一个数组,再和星号结合,说明数组中的元素是指针变量,再和【4】结合,说明其中每个指针都指向一个内含4个int类。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1030524.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号