复杂的C++声明阅读

创建一个Computer类 准备工作:创建一个Computer类 要求成员变量包括如下: (1)编号(即计算机的唯一标识) (2)CPU型号, (3)主板型号, (4)硬盘大小, (5)内存大小, (6)显卡型号, (7)价格, 题目: (1)要求使用ArrayList存储计算机对象, 形如:ArrayList cList = new ArrayList(); (2)为ArrayList对象(例如:上面的cList)添加3个元素。 (3)模拟用户输入(Scanner对象)编号获取对应的Computer信息,并且输出具体的参数。 (4)遍历输出ArrayList中的Computer,同时输出Computer的详细信息。 界面: 1---添加计算机 2---查询计算机(输入计算机编号、查出具体的某台计算机信息) 3---查询全部计算机信息 立即下载
 
int * (* (*fp1) (int) ) [10];
 
阅读步骤:
1. 从变量名开始 --------------------------------------------                      fp1
2. 往右看,什么也没有,碰到了),因此往左看,碰到一个* -- fp1是一个 指针
3. 跳出括号,碰到了(int) -----------------------------------                     该 指针指向一个带一个 int参数的 函数
4. 向左看,发现一个* ---------------------------------------                    该 函数返回一个指针
5. 跳出括号,向右看,碰到[10] ------------------------------          该 指针指向一个10元素的 数组
6. 向左看,发现一个* ---------------------------------------                    该 数组的成员类型是指针
7. 向左看,发现int -----------------------------------------                      该 指针指向 int类型
 
总结:fp1被声明成为一个 函数的 指针该 函数返回指向 指针数组的 指针.,
 
读《认知科学导论》(萨伽德) 总结 1. 作者的写作思路 本书是建立在对心智的理解采用表征与计算的方式。对心智表征-计算的理解方式是与计算机的本质相联系。计算机本质上是一个符号系统,符号系统包含两个部分,一个是符号,另一个是建立在符号上的操作。对心智采用表征-计算的方式理解,很容易与计算机建立起类比关系。同时人们在探索人工智能领域采用表征-计算方式已经取得了无数辉煌的成就,故表征-计算式现在研究的主流方法。 本书的有两个部分组成 阅读详情

相关推荐

金蝶云星空核心数据表解析与高效关联查询指南

本文深入解析金蝶云星空核心数据表结构,提供高效关联查询的实战指南。文章详细介绍了基础资料、业务单据和财务模块的关键表及其关联逻辑,重点阐述了如何利用关联表(_LK表)进行跨单据溯源,并分享了编写高性能SQL的实用技巧与避坑建议,帮助开发者、实施顾问和数据分析师快速掌握数据查询方法,提升工作效率。

weixin_29254673的博客 524

[c/c++] 复杂变量类型的阅读方法

复杂变量的解读-->从右向左,最靠近变量名的那个符号即是变量的真实属性。 //从右向左 const int * p; //p是指针,指向const int int const* p; //p是const指针,仅指向某个int int *const p; //同上 const int const* p; //p是const指针,仅指向某个cosnt int const int *const p; //同上 //(!) const* 和 *const 等价 ...

ykun089的博客 479

基于阻抗控制的工业机器人轨迹跟踪系统 Simulink/Simscape 仿真

  本文是对文献 [1] 的复现。 关于阻抗控制   阻抗控制的提出可以追溯到 1984 年,Neville Hogan 在 American Control Conference 发表的 Impedance Control:An Approach to Manipulation ,次年,Hogan N. 又在 Journal of Dynamic Systems Measurement and Control-transactions of The Asme 发表了阻抗控制经典三部曲 —— Imped.

-贝塔- 的博客 2万+

C++定义一个简单的Computer类

/*定义一个简单的Computer类 有数据成员芯片(cpu)、内存(ram)、光驱(cdrom)等等, 有两个公有成员函数run、stop。cpu为CPU类的一个对象, ram为RAM类的一个对象,cdrom为CDROM类的一个对象, 定义并实现这个类。 2018.4.3 */ 代码如下 #include<iostream> #include<...

weixin_33734785的博客 5223

给jetson nano 安装AX200网卡驱动

几经波折,因为在网上看到的基本都是amd版本而非arm版,然后最终选定V5.5是因为更新的几个版本的arm版本是false的(在https://kernel.ubuntu.com/~kernel-ppa/mainline/处选择版本时,得看在arm64上是false还是build succeeded,之前没经验呀刚刚才顿悟的) 1,参考文章https://blog.youkuaiyun.com/MIRANA0/article/details/106696334 学到了得下载如下四个: wget https://k

发嘎嘎的博客 2344

【数据结构】汉诺塔问题(丰富图解)

经典汉诺塔问题,丰富图解,助你理解。

℉f的博客 4105

【C/C++】如何阅读C/C++中的复杂类型声明

如何阅读C/C++中的复杂类型声明呢?一般采用英语语序法。有以下规则: 从变量开始,读作 变量 is ,然后先读右部的修饰符,再读左边的修饰符,如果遇到括号就跳出去重复这一动作。 对于 [N] ,读作 an array of N ; 对于 () ,读作 a function that returns 或者 a function returning ; 对于 T * ,读作 a pointer to T ; 其他类型名按原意阅读,有 const 修饰符就加上; 按照处理顺序,将翻译出的所有语句连接起来,就是

memcpy0的博客 528

别再问“这游戏啥引擎做的”了,手把手教你用SteamDB一键查询(附实战案例)

本文详细介绍了如何使用SteamDB一键查询游戏引擎信息,包括Unity 3D、Unreal Engine等热门引擎的识别方法。通过实战案例和高级查询技巧,帮助玩家快速获取游戏技术底细,优化游戏体验和兼容性分析。

weixin_31412781的博客 815

如何阅读C/C++中复杂声明(转载)

原创: 上善若水  码农有道  2017-10-09 我们经常遇到一些复杂的指针类型说明,很多初学者可能感觉有点蒙,即使是非常有经验的C/C++程序员,也会对那些比较复杂些的声明感到头疼。例如,下面这个是一个包含指针的数组,还是一个指向数组的指针呢 int *a[10]; 好了,这个并不是特别复杂的声明,你可能快速而又准确的说出你的答案:一个含有10个指针的数组。 那么,来一个更具挑战性的例子,...

wWX336815的博客 442

6.Burp Suite 入门篇 —— Burp Scanner 漏洞扫描

Burp Scanner 既可以是独立的全自动扫描器,也可以在手动测试中当作强大的辅助手段,而且随着技术改进,Burp Scanner 能检测到的漏洞数量也在不断增加。Burp Scanner 功能只在 burpsuite 专业版和企业版中里有,本篇教程讲的是专业版的 Burp Scanner 用法。

YouTheFreedom的博客 1万+

【QT开发教程】使用Qt进行蓝牙低功耗(BLE)编程

蓝牙低功耗(BLE,Bluetooth Low Energy)技术广泛应用于现代设备中,例如智能手表、健身追踪器和物联网设备。Qt提供了一套完整的Bluetooth模块,使开发者可以轻松地在应用程序中实现BLE通信功能。本文将介绍如何在Qt中进行BLE编程,包括基本概念、使用方法以及一些实际的示例。

科技改变人类,技术成就未来 2868

201120 c++ 右左法则(阅读复杂声明必备)

全文转载,源地址:here 理解复杂声明可用的**“右左法则”: 从变量名看起,先往右,再往左,碰到一个圆括号就调转阅读的方向;括号内分析完就跳出括号,还是按先右后左**的顺序,如此循环,直到整个声明分析完。举例: int (*func)(int *p); 首 先找到变量名func,外面有一对圆括号,而且左边是一个*号,这说明func是一个指针;然后跳出这个圆括号,先看右边,又遇到圆括号,这说明 (func)是一个函数,所以func是一个指向这类函数的指针,即函数指针,这类函数具有int类型的形参,返回

weixin_43278457的博客 371

Gmsh+OCC对应版本库编译

输入 GMSH_DLL_EXPORT值C:\LIB\OCCT-7_8_0-i;9、如果只是生成库文件编译gmesh工程即可生成文件在C:\LIB\Gmsh\gmsh-4.13.1-Windows64-B\Debug 下gmsh.dll、gmsh.lib、gmsh.h、gmshc.h文件;3、CMAK编译Gmsh对应OCC版本的,CMAK选择源文件路径C:\LIB\Gmsh\gmsh-4.13.1-source,生成构建文件路径C:\LIB\Gmsh\gmsh-4.13.1-Windows64-B。

u013401364的博客 411

如何阅读C/C++中的复杂的指针类型声明(源码中常遇到)

如何阅读C/C++中复杂指针类型声明 我们经常遇到一些复杂的指针类型说明,很多初学者可能感觉有点蒙,即使是非常有经验的C/C++程序员,也会对那些比较复杂些的声明感到头疼。例如,下面这个是一个包含指针的数组,还是一个指向数组的指针呢 int *a[10]; 好了,这个并不是特别复杂的声明,你可能快速而又准确的说出你的答案:一个含有10个指针的数组。 那么,来一个更具挑战性的例...

weixin_37910058的博客 314

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

震惊!5句话搞定所有CPP的复杂类型声明

什么叫搞定:任意给一个类型声明语句,能够判断其是争取的还是错误的,如果是正确的,其是什么含义。 什么叫复杂类型声明:融合指针,引用,const,数组,函数声明,函数指针等各种元素的类型声明。 对象是一块具有类型的内存空间; *与&都是可以做为类型修饰符使用,用于修饰类型; const是对象修饰符,用于修饰对象,表示该对象的内容不能改变; 引用不是对象,引用初始化后与某个对象绑定后不能再...

LemintC的博客 421

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

教你理解复杂的C/C++声明

原文:http://www.codeproject.com/cpp/complex_declarations.asp作者:Vikram A Punathambekar介绍曾经碰到过让你迷惑不解、类似于int * (* (*fp1) (int) ) [10];这样的变量声明吗?本文将由易到难,一步一步教会你如何理解这种复杂的C/C++声明:我们将从每天都能碰到的较简单的声明入手,然后逐步加入cons

梦的归宿 1345

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

C/C++语言声明的优先级

C/C++声明的规则:步骤:1、声明从名字开始读取,然后按优先级顺序依次读取。2、优先级顺序是:  (1)声明中括号括起来的部分  (2)后缀操作符,括号()表示是个函数,方括号【】表示是个数组  (3)前缀操作符*, 表示“指向 ----的指针”3、如果是const 和volatile关键字放在类型标识符的前面,那么它作用于类型操作符,比如“指向int类型const变

liam1122(小亮)的专栏 1051

C++中*和&符号

在c++primer一书中jiangdao

Rambo的专栏 1379

解读复杂指针声明

C/C++语言所有复杂的指针声明,都是由各种声明嵌套构成的。如何解读复杂指针声明呢?右左法则是一个既著名又常用的方法。不过,右左法则其实并不是C标准里面 的内容,它是从C标准的声明规定中归纳出来的方法。C标准的声明规则,是用来解决如何创建声明的,而右左法则是用来解决如何辩识一个声明的,两者可以说是 相反的。右左法则的英文原文是这样说的: The  right-left  rule:  Start  reading  the  declaration  from  the  innermost  parent

freshgamer的专栏 581

C 语言 - 指针与const复杂声明完全掌握 | 右左法则详解与实践指南

C语言-指针与const复杂声明完全掌握,右左法则详解与实践指南

欢迎来到Petter_Deng的博客 1822

如何读C++指针复杂声明?

很多人都会被C++指针的复杂声明搞混了。其实,读C++指针声明的过程,我们可以遵循2个原则:1、从名字开始,右-&gt;左-&gt;右-&gt;左-&gt;右这样来读;2、不断对指针内容进行补完(对于指针,我们要知道指针的类型,知道了指针的类型也就是补完了;对于函数,我们要知道函数的参数和返回值,知道了也算是补完了)。举个例子:float (*(* fp)(int,int,int))(int)1、...

Gensoukyo 584

C++中复杂声明的理解

C++中复杂声明   记录一下自己对复杂声明的理解,有一个基本原则:由(括号)内向(括号)外,由左至右。   目前遇到的基本都是指针、引用和数组这三个类型混杂在一起的情况,在最开始没了解规律的时候,很头大。了解的有两种情况,如下。   1、指向指针的引用 int i = 0; int *p; int *&r = p;//r为指针p的引用   上面代码的第三行中,由于没有括号,所以直接从右至左读即可,r的左边为&,所以r是一个引用,然后再接着往左读,看r是一个什么引用,int

weixin_43412666的博客 281

详解 C++ 防御性编程声明一个类型 int *(*(*foo)(int))[5];

C++ 中有一些语法由于灵活性和强大功能显得非常复杂。例如,复杂声明是许多人在学习 C++ 时遇到的难题之一。下面以一条常被称为 “C++ 最难的声明” 为例,逐步拆解它的含义。虽然这类声明在实际编程中较少使用,但理解它的规则对于掌握 C++ 的类型系统和指针语法有很大帮助。这是一个看似复杂的 C++ 声明。让我们逐步分析它的含义。

抟土成人祖,炼石补青天。眼中览银河,手可摘星辰。 527

格式化stl复杂声明

  今天用vs调试程序,想看看各个函数耗费时间,结果发现某些函数声明竟然长这样: std::vector<std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,int>,std::allocator<std::pair<std:...

weixin_30527143的博客 69

C++typedef的详细用法

转自知乎的一段解释:作者:知乎用户链接:https://www.zhihu.com/question/29798061/answer/144423125来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。不太想谈#define, 在题主的例子的这种用法里, 它就是个文本替换工具, 预处理器完成的, 无脑替换, 跟word里的replace一模一样, 不关编译器的事. 我想...

hai008007的博客 8万+

右左法则----复杂指针解析

首先看看如下一个声明:   int* ( *( *fun )( int* ) )[10];   这是一个会让初学者感到头晕目眩、感到恐惧的函数指针声明。在熟练掌握C/C++的声明语法之前,不学习一定的规则,想理解好这类复杂声明是比较困难的。   C/C++所有复杂的声明结构,都是由各种声明嵌套构成的。如何解读复杂指针声明?右左法则是一个很著名、很有效的方法。不过,右左法则其实并不是C/

lucifer_凡 437
上一篇: 关于this指针
下一篇: 编译指令#pragma详解
computerart
博客等级 码龄20年 0粉丝 3原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值