指针——数据结构解惑

server/2024/10/21 19:44:58/

文章目录

  • 一.取指针和解指针
  • 二.为什么用指针?

指针存的是地址

一.取指针和解指针

int main()
{int a=0;int * p ;//声明int类型的**指针**char * m ;//声明char类型的**指针**&a;//a是个变量,&a,把地址取出来p=&a;//p指针存的a的地址printf("%d",*p);//解指针,把指针的值复原出来
}

&:取指针
*:解指针

二.为什么用指针?

比如不知道a但想把a的值修改掉

p=&a;//p指针存a地址
*p=5;//*p:a对应的值
printf("%d",a);//输出a也是5

对*p做出的任何改变都会作用到a上(原来的位置)
在这里插入图片描述

void swap(int * a,int * b)//*在定义变量时代表指针的意思,指针变量
{int t=*a;*a=*b;*b=t;
}	//只有对地址进行修改才会作用到全局变量中
int main()
{int a=2;int b=8;printf("%d %d",a,b);swap(&a,&b);//取指针进去,时刻注意是指针类型还是变量类型printf("%d %d",a,b);return 0;
}

在这里插入图片描述

	int c[3]={1,2,3};//printf("%d",&c);//错误,因为c本身就是地址printf("%d",c);//第一个的地址地址,指针常量,不能修改*p=a;//可以//c=&a;不可以,常量不可以修改,c是常量

在这里插入图片描述

printf("%d",*c);//第一个数

在这里插入图片描述

*(c+1)//指向下一个地址,输出2,加以为了移位,解指针为了获得他的值

*(c+1)和 c[1] 价值一样

//定义一个指针
int * p=c+1;//p:指针 *p:取数
printf("%d",*p);//等同于p[0]
//第二个数

在这里插入图片描述
对指针的任何运算都起到移位的作用,以自己的类型为单位移动,int型,char型
数组的数组名和指针的唯一区别:
数组名不能改,不能把它赋成别的值
指针可以赋成别的值


http://www.ppmy.cn/server/133707.html

相关文章

【MATLAB源码-第278期】基于matlab的ACO-OFDM系统仿真,输出误码率曲线图、时域频域图和子载波分离时域图。

操作环境: MATLAB 2022a 1、算法描述 ACO-OFDM(Asymmetrically Clipped Optical Orthogonal Frequency Division Multiplexing)是一种创新的光通信技术,旨在提升数据传输的效率和可靠性。与传统的OFDM技术相比,ACO-…

基于SpringBoot+Vue+uniapp的涪陵区特色农产品交易系统的详细设计和实现(源码+lw+部署文档+讲解等)

详细视频演示 请联系我获取更详细的视频演示 项目运行截图 技术框架 后端采用SpringBoot框架 Spring Boot 是一个用于快速开发基于 Spring 框架的应用程序的开源框架。它采用约定大于配置的理念,提供了一套默认的配置,让开发者可以更专注于业务逻辑而不…

桥接模式详解与代码实现

桥接模式(Bridge Pattern) 是结构型设计模式之一,目的是将抽象部分与它的实现部分分离,以便两者可以独立变化。通过桥接模式,可以将一个类的功能和实现解耦,避免继承层次过深(每新增一个功能都需…

C# WebApi 接口测试工具:WebApiTestClient应用技术详解

目录 一、引言 二、WebApiTestClient介绍 1、特性 2、应用场景 三、WebApiTestClient具体使用 1、WebApi项目引入组件 2、如何使用组件 1、修改Api.cshtml文件 2、配置读取注释的xml路径 3、测试接口 四、总结 一、引言 由于最近项目需要开发WebApi接口&…

浙大数据结构:09-排序3 Insertion or Heap Sort

这个题跟上个题差不多&#xff0c;只不过是换成了堆排序而已 机翻 1、条件准备 跟之前一样&#xff0c;oldnum数组存旧数组&#xff0c;newnum数组存新数组 #include <iostream> #include<vector> #include<algorithm> using namespace std; #define end…

Qt 窗口的模态类型

setWindowModality函数 void setWindowModality(Qt::WindowModality windowModality); setWindowModality 是QWidget类的一个成员函数&#xff0c;它允许你设置窗口的模态类型。模态性定义了窗口如何与其他窗口交互&#xff0c;以及用户在与模态窗口交互之前是否必须先与之交互…

Vue Data UI——Vue 3 数据可视化组件库

文章目录 1、Vue Data UI2、核心特点2.1.Vue 3 的深度集成2.2 丰富的可视化组件2.3 灵活的定制性2.4 易于集成2.5 文件导出功能2.6 多主题支持3、如何在项目中使用 Vue Data UI?3.1 安装 Vue Data UI3.2 全局注册组件3.3 局部引入组件3.4 使用通用组件3.5 TypeScript 集成4、总…

FFmpeg 4.3 音视频-多路H265监控录放C++开发二 : 18.04ubuntu安装,linux 下build ffmpeg 4.3 源码 并测试

测试环境 ubuntu 18.04 64 位&#xff0c;安装vmware and ubuntu 安装后调整 分辨率&#xff1a; 让windows 可以和 linux 互相复制黏贴 sudo apt-get autoremove open-vm-tools sudo apt-get update sudo apt-get install open-vm-tools-desktop 一直Y reboot 依赖安装 sud…