当前位置:网站首页>C语言:浅谈各种复杂的声明
C语言:浅谈各种复杂的声明
2022-07-29 04:12:00 【白的夜gxw】
初学者在面对各种复杂的声明面前往往不知所措,甚至可以说一头雾水,不知道从何下手,本文就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类。
边栏推荐
- 对一个元素使用多种变形的方法
- Opensql quick learning
- How to write the filter conditions of data integration and what syntax to use? SQL syntax processing bizdate can not be
- BIO、NIO、AIO的区别和原理
- 店铺排名问题,如何解决?
- Communication between parent-child components and parent-child components provide and inject
- %s. %c, character constant, string constant, const char*, pointer array, string array summary
- Change the value of the argument by address through malloc and pointer
- Beginner: array & String
- RMAN do not mark expired backups
猜你喜欢

LDP -- label distribution protocol

RMAN do not mark expired backups

Nacos registry

为什么opengauss启动的时候这么多的unknown?

【深度学习CPU(番外篇)——虚拟内存】

Zhihuijun, a genius of Huawei, made a modular mechanical keyboard, which caused an earthquake in the geek circle. Netizens: This is the real customization

C language to achieve three chess game (detailed explanation)

Beginner: array & String

Ma Zhixing entered the mass production of front loading, starting with the self-developed domain controller?

Install the laser of ROS_ scan_ Problems encountered in match library (I)
随机推荐
企业网的三层架构
SQL server how to judge when the parameter received by the stored procedure is of type int?
SQL window function
当我从数据库获取到了winfrom特定的控件ID之后我需要通过这个ID找到对应的控件,并对控件的TEXT文本进行赋值这该怎么做
C language: getchar () and cache
Object array merges elements according to a field
HCIP BGP
“蔚来杯“2022牛客暑期多校训练营2 H
数据挖掘——关联分析例题代码实现(下)
【深度学习CPU(番外篇)——虚拟内存】
VScode连接ssh遇到的问题
Deep understanding of browser caching mechanism (HTTP)
SQL语句 关于字段转换怎么写
[paper translation] vectornet: encoding HD maps and agent dynamics from vectorized representation
伏英娜:元宇宙就是新一代互联网!
The solution of porting stm32f103zet6 program to c8t6+c8t6 download program flash timeout
Lvs+keepalived high availability deployment practical application
通过PWM呼吸灯和PWM控制直流电机来详细介绍TIM的输出比较功能
opengauss预检查安装
安装postgis时报找不到“POSTGIS_VERSION”这个函数