c++-指针

news/2024/10/28 22:33:47/

目录

    • 声明与相关运算符
    • 指针与地址
    • 例子
    • 指针运算
    • 空指针
    • 无类型指针
    • const指针

声明与相关运算符

1、数据类型 *变量名;
2、两种特殊运算符。
取操作数的内存地址&
取指针对应内存地址上的值 *
注意,内存地址上存储可能会是另一个操作数的指针,因为可以多重指针

指针与地址

1、地址是操作数或对象在内存中的起始位置,但并不能表征这个数的大小,这个地址上可能存整型,也可能存字符型等。
2、指指针除了地址以外,还有一个信息,表示了指向对象的类型,这样可以知道指向对象的大小。

例子

int *x;//指向整型指针
char *x;//指向字符型指针
char *y[10];//指向字符的指针组成的数组,即指针数组
char (*x)[10];//一个指向字符数组的指针,即数组指针
int *f();//返回整型指针的函数
int (*f)();//指向返回整型量的函数的指针,即指针函数。
int (*x[3][2])();//指针数组,数组的每个元素为指向返回整型量的函数的指针
int *(*x)();//指向函数的指针,该函数的返回值为指向整型量的指针

指针运算

1、数组指针
下面利用数组指针对二维元素进行访问。

#include <iostream>
#include <string>
using namespace std;
int main(){int x[][3]={1,2,3,4,5,6};int (*p)[3];for(p=&x[0];p<&x[2];p++){cout<<endl<<*p[0]<<" ";int *p1=p[0];cout<<*(p1+1)<<" "<<*(p1+2)<<" ";}p=x;cout<<endl<<*(*(p+1)+1)<<endl;//x[1,1]
}
1 2 3
4 5 6
5==== Program exited with exit code: 0 ====
Time elapsed: 000:00.406 (MM:SS.MS)
Press any key to continue...

2、指针和整型量加减,表示增加或减少一个指针位(完成指针的位移),每个指针位相隔的距离由指针指向的数据类型决定,比如int型,32位,每个int* 的加减号完成32位的地址加减,即4个字节距离。
3、指针指向同一数据类型,可以进行大于、等于、小于等关系运算。
4、指针运算比数组运算要快

空指针

NULL
值 为0,使用==或!=来判定是否空指针 。

无类型指针

void *

const指针

1、const * int
指针指向常量
2、int *const
指针是常量 ,指向的数据可以更改。
3、const int *const
指针和指向的数据都不能更改。


http://www.ppmy.cn/news/4820.html

相关文章

6266. 使用质因数之和替换后可以取到的最小值

给你一个正整数 n 。 请你将 n 的值替换为 n 的 质因数 之和&#xff0c;重复这一过程。 注意&#xff0c;如果 n 能够被某个质因数多次整除&#xff0c;则在求和时&#xff0c;应当包含这个质因数同样次数。 返回 n 可以取到的最小值。 示例 1: 输入&#xff1a;n 15 输出…

开发1-5年的Java程序员,该学习哪些知识实现涨薪30K?

工作已经8年有余&#xff0c;这8年里特别感谢技术管理人员的器重&#xff0c;以及同事的帮忙&#xff0c;学到了不少东西。这8年里走过一些弯路&#xff0c;也碰到一些难题&#xff0c;也受到过做为一名开发却经常为系统维护和发布当救火队员的苦恼。遂决定梳理一下自己所学的东…

执行RMAN恢复的高级场景_使用备份控制文件(Backup Control File)执行恢复

当所有当前的控制文件丢失时&#xff0c;必须还原备份的控制文件。 1&#xff0e;关于使用备份控制文件恢复 如果当前控制文件的所有副本丢失或损坏&#xff0c;那么必须还原和挂载备份的控制文件。然后必须运行RECOVER命令&#xff0c;即使没有还原任何数据文件&#xff0c;…

概率论 ‖ Machine Learning必备知识

概率论&#xff01;Machine Learning必备知识 文章目录概率论&#xff01;Machine Learning必备知识1 什么是概率1.1 最简单的例子1.2 概率论与数理统计的关系2 大数定律和中心极限定理2.1 大数定律是什么&#xff1f;2.2 代码直观理解大数定律2.3 中心极限定理2.4 大数定律和中…

android studio 升级 Dolphin | 2021.3.1 Patch 1 跟 View.isInEditMode,xml无法预览

最近一段时间Google又更新了AS的版本,一些小伙伴尝试了更新,发现在之前版本上好好的xml布局预览,在新版本上不显示了,新版本如下图所示。 一般来说出了新版本之后我们不会马上更新,因为会觉得新版本不稳定,问题多,但其实是问题不大,解决了就好了,那么我现在就遇到了一…

【毕业设计_课程设计】基于 U-Net 网络的遥感图像语义分割(源码+论文)

文章目录0 项目说明1 研究目的2 研究方法3 研究结论4 论文目录5 项目工程0 项目说明 **基于 U-Net 网络的遥感图像语义分割 ** 提示&#xff1a;适合用于课程设计或毕业设计&#xff0c;工作量达标&#xff0c;源码开放 实验训练使用 Anaconda 版 Python 3.7 下的 TensorFlo…

【图像分割】模糊聚类算法FCM图像分割【含Matlab源码 084期】

⛄一、模糊聚类算法FCM简介 1 前言 图像分割是图像进行后续分析处理的基础&#xff0c;它将图像分成不同特征部分并获得所需目标&#xff0c;广泛应用于诸多领域&#xff0e;彩色多目标图像具有更为丰富的图像信息&#xff0c;目标色彩较多&#xff0c;且同一色彩的目标有时具…

jekins集成部署

jekins集成部署 1.jekins简介 2.Jenkins部署环境 3. jekins安装 4.配置jekins启动和停止脚本 5.插件安装 5.1.安装maven插件安装 5.2 安装gitee插件 5.3 安装Publish Over SSH插件 5.4 安装 事件机制插件 6.任务构建 6.1 构建任务 6.2 配置giteeApi令牌 6.3 配置gitee源码地址 …