《C++必知必会》读书笔记4

简介:

int *f();   //一个返回值为int* 的函数

int (*f)();  //一个函数指针,指向一个返回类型为int的并且无参数的函数

 

const int N=12;

int *a[N];  //首先,提醒这段代码在c中不行。 这个是一个具有N个int * 元素的数组

int (*a)[N];  //一个指针,指向一个具有N个int元素的数组。

 

int(**p)[N];  //一个指针,指向一个指针,后者指向一个具有N哥int元素的数组

int *(*p)[N];  //一个指针,指向一个具有N个int * 元素的数组

int (**const p)()const =0;  //一个常量指针,指向一个指向函数的指针。

int* (*p)();     //一个指针,指向一个返回类型为int* 的函数。

 

参数和返回值都会影响指针的类型:

char *(*p1)(int ,int);

char *(*p2)(short,short)=0;

p1=p2;  //Error 类型不匹配

 

智能指针通过重载->和* (也可能还有->*)操作符,来模仿指针的行为。

函数对象类型通过重载()操作符,来创造类似于函数指针的东西。

 

在c++中,一个对象可以哟多个有效的地址,因此指针的比较不是关于地址的问题,而是关于对象的“同一性”的问题。

目录
相关文章
Vue3选择器(Select)
该文章介绍了一个基于 Vue2 的选择器组件 `Select`,具备丰富的自定义属性,如选项数据、占位符文本、是否禁用、是否支持清除和搜索等。支持自定义过滤函数,并可调整下拉面板的高度、宽度及显示项数。组件内部集成了 `Empty` 和 `Scrollbar` 组件以增强功能性和用户体验。示例代码展示了如何创建和使用该选择器,包括基本使用、禁用选项、支持清除与搜索等功能。
308 1
Vue3选择器(Select)
|
10月前
|
监控 Oracle 关系型数据库
Linux平台Oracle开机自启动设置
【11月更文挑战第8天】在 Linux 平台设置 Oracle 开机自启动有多种方法,本文以 CentOS 为例,介绍了两种常见方法:使用 `rc.local` 文件(较简单但不推荐用于生产环境)和使用 `systemd` 服务(推荐)。具体步骤包括编写启动脚本、赋予执行权限、配置 `rc.local` 或创建 `systemd` 服务单元文件,并设置开机自启动。通过 `systemd` 方式可以更好地与系统启动过程集成,更规范和可靠。
686 2
|
存储 安全 Java
阿里云云效产品使用合集之怎么设置使用npm私有仓库进行流水线拉取依赖
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
NoSQL Redis
蓝易云 - redis报错WRONGTYPE Operation against a key holding the wrong kind of value
解决这个问题的方法是检查你的代码,确保你对每个键使用的命令与该键的类型匹配。你可以使用 `TYPE`命令来确定一个键的类型。例如,`TYPE mykey`将返回 `mykey`的类型。
459 3
|
安全 Java 网络安全
如何在Java中处理SSLHandshakeException异常?
如何在Java中处理SSLHandshakeException异常?
1979 1
|
存储 监控 Linux
linux系统应用中select函数与poll函数详解
linux系统应用中select函数与poll函数详解
167 0
|
存储 Rust 安全
《面向应用安全防护领域设计Wasm插件》赛题解析
2023云原生编程挑战赛2:面向应用安全防护领域设计 Wasm 插件 本赛题希望基于 WASM 实现 Higress 网关安全防护插件,开发者可以选择 Go/Rust/C++ 等多种语言,并从 IP 防护,WAF 规则防护,CC 防护等不同角度出发设计实现插件。
|
Java Spring
Spring中@NotEmpty、@NotBlank、@NotNull 区别和使用
Spring中@NotEmpty、@NotBlank、@NotNull 区别和使用
441 0
|
存储 SQL NoSQL
GreenPlum数据分布机制
GreenPlum数据分布机制
281 0
|
JavaScript API
vue3+vite 封装axios请求
vue3+vite 封装axios请求
1008 0