当前位置: 首页 > news >正文

C 语言 - 右左法则与实践练习题 答案解析

右左法则与实践练习题

下面这几个声明,请尝试使用右左法则阅读,并写出它们的含义:

  1. int* a[5];
  2. int (*a)[5];
  3. int (*a)(int);
  4. int* (*a[3])();

解析

1. int *a[5];

右左法则解析:

从变量名 a 开始:

  • a[5]:说明 a 是一个数组,包含 5 个元素
  • 每个元素是 int *:也就是说,数组中的每个元素都是一个指向 int 的指针

结论:

a 是一个 含有 5 个指向 int 的指针 的数组。

图示理解:

int *a[5];  →  [ *a[0], *a[1], *a[2], *a[3], *a[4] ]

2. int (*a)[5];

右左法则解析:

从变量名 a 开始:

  • (*a):说明 a 是一个指针
  • (*a)[5]:说明 a 是一个指向含 5 个 int 元素的数组的指针

结论:

a 是一个 指向含有 5 个 int 的数组的指针

图示理解:

int (*a)[5];  →  a -----> [int, int, int, int, int]

3. int (*a)(int);

右左法则解析:

从变量名 a 开始:

  • (*a):说明 a 是一个指针
  • (*a)(int):说明 a 是一个指向函数的指针,这个函数接受一个 int 参数
  • 函数返回 int

结论:

a 是一个 指向函数的指针,这个函数接收一个 int 参数并返回一个 int 值。

图示理解:

int (*a)(int);  →  a ---> function(int) → int

4. int *(*a[3])();

右左法则解析:

从变量名 a 开始:

  • a[3]:说明 a 是一个 数组,包含 3 个元素
  • 每个元素是 (*a[i])():说明数组中的每个元素是一个函数指针
  • 每个函数指针指向的函数 不接受参数())并且 返回 int *

结论:

a 是一个 数组,包含 3 个指向函数的指针,这些函数无参数,返回 int * 类型的指针

图示理解:

int *(*a[3])();  →  [ func1() → int*, func2() → int*, func3() → int* ]

右左法则与实践原文链接如下:
https://blog.csdn.net/weixin_52631945/article/details/147101592?spm=1011.2415.3001.5331


(完)


文章转载自:
http://bitonal.jopebe.cn
http://canned.jopebe.cn
http://cavitate.jopebe.cn
http://chamberer.jopebe.cn
http://aitch.jopebe.cn
http://befell.jopebe.cn
http://aluminous.jopebe.cn
http://ambidextrous.jopebe.cn
http://annuity.jopebe.cn
http://bereaved.jopebe.cn
http://chondrule.jopebe.cn
http://caledonia.jopebe.cn
http://aggrandize.jopebe.cn
http://archer.jopebe.cn
http://agendum.jopebe.cn
http://bellingshausen.jopebe.cn
http://carvacrol.jopebe.cn
http://aspartame.jopebe.cn
http://cashaw.jopebe.cn
http://adverse.jopebe.cn
http://associability.jopebe.cn
http://camelback.jopebe.cn
http://bulldagger.jopebe.cn
http://ascites.jopebe.cn
http://benzedrine.jopebe.cn
http://audiometric.jopebe.cn
http://caravansarai.jopebe.cn
http://chabouk.jopebe.cn
http://biofeedback.jopebe.cn
http://bethlehem.jopebe.cn
http://www.dtcms.com/a/128164.html

相关文章:

  • 文档检索技术详解 (Document Retriever)
  • 代码随想录算法训练营第十六天
  • C++、Python的输入输出及相关的处理操作
  • 通过websocket给服务端发送订单催单提醒消息
  • 基于双闭环PID控制器的永磁同步电机控制系统匝间故障Simulink仿真
  • 当DRAM邂逅SSD:新型“DRAM+”存储技术来了!
  • 网络建设与运维神州数码DCN savi源地址验证改进功能
  • VIRT, RES,SHR之间的关系
  • 图像预处理(OpenCV)
  • Spring Security 使用教程
  • 三维激光测量助力企业检测效率提升3倍
  • 15.【.NET 8 实战--孢子记账--从单体到微服务--转向微服务】--单体转微服务--如何拆分单体
  • 状态机 XState
  • WiFi那些事儿(四)
  • 嵌入式Linux——8 串口
  • pytorch查询字典、列表维度
  • 应急响应排查系统技术解析
  • Ingress蓝绿发布
  • Redis 特性和应用场景
  • 测试模板1
  • python高级编程一(生成器与高级编程)
  • arcpy基础之环境搭建
  • 【QT】学习笔记1
  • leetcode刷题日记——赎金信
  • 【PyTorch项目实战】反卷积(Deconvolution)
  • 解决 weditor 报错AttributeError: ‘Device‘ object has no attribute ‘address’
  • Java对象内存结构详解
  • 文献总结:AAAI2025-UniV2X-End-to-end autonomous driving through V2X cooperation
  • linux RCU技术
  • Android11车载WiFi热点默认名称及密码配置