对C语言指针的理解

news2024/11/28 2:44:15

&是取地址,描述当前变量的内存位置
*是提取,描述指针变量所代表的变量的值;设计指针是为了节省内存空间,指针变量的巧妙使用可以减少内存中相同变量值的重复存储
多级指针中,一级指针指向普通变量的地址,二级指针指向一级指针的地址,三级指针指向二级指针的地址,依此类推,无限套娃
一段恶臭代码:

#include<bits/stdc++.h>
#include<typeinfo>
using namespace std;
char *p1=NULL;
char **pp1=NULL;
char p='T';//字符变量
void test(char **a) {
    **a='W';
}
void Print() {
    printf(" *p1=%c---p=%c, p1=%d---&p=%d---&(*p1)=%d, &p1=%d---pp1=%d\n *pp1=%d---p1=%d, **pp1=%c---p=%c",*p1,p,p1,&p,&(*p1),&p1,pp1,*pp1,p1,**pp1,p);
}
int main() {
    p1=&p;//取地址
    pp1=&p1;
    cout<<typeid(pp1).name()<<endl;
    printf(" *p1=%c---p=%c, p1=%d---&p=%d---&(*p1)=%d, &p1=%d\n",*p1,p,p1,&p,&(*p1),&p1);
    cout<<"\nBefore change the value of **pp1:"<<endl;
    Print();
    test(pp1);
    cout<<"\nAfter change the value of **pp1:"<<endl;
    Print();
    return 0;
}

注意: 只有pp1和p1都是同类型的指针,这样才有pp1=&p1,即将指针p1的地址赋给指针pp1,其实指针和普通变量没啥区别,都有自己的地址,只是指针里面存放的是地址,普通变量里面存放的是变量值,可以用 * 将指针里面存放的地址对应的变量值(或下一级地址)解析(或提取)出来,也可以通过 * 直接修改变量值

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/777924.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

AJAX-day03-AJAX进阶

(创作不易&#xff0c;感谢有你&#xff0c;你的支持&#xff0c;就是我前行的最大动力&#xff0c;如果看完对你有帮助&#xff0c;请留下您的足迹&#xff09; 目录 同步代码和异步代码 回调函数地狱 Promise - 链式调用 Promise 链式应用 async函数和await async函…

操作系统笔记、面试八股(三)—— 系统调用与内存管理

文章目录 3. 系统调用3.1 用户态与内核态3.2 系统调用分类3.3 如何从用户态切换到内核态&#xff08;系统调用举例&#xff09; 4. 内存管理4.1 内存管理是做什么的4.1.1 为什么需要虚拟地址空间4.1.2 使用虚拟地址访问内存有什么优势 4.2 常见的内存管理机制4.3 分页管理4.3.1…

Sentinel规则持久化到nacos的实现(源码修改)

文章目录 1、Sentinel源码修改2、持久化效果测试 Sentinel规则管理有三种模式&#xff1a; 原始模式pull模式push模式 这是实现push方式&#xff1a; push模式即控制台将配置规则推送到远程配置中心&#xff0c;例如Nacos。Sentinel客户端去监听Nacos&#xff0c;获取配置变更…

通过URL对象实现简单爬虫功能

目录 一、URL类 1. URL类基本概念 2. 构造器 3. 常用方法 二、爬虫实例 1. 爬取网络图片&#xff08;简易&#xff09; 2. 爬取网页源代码 3. 爬取网站所有图片 一、URL类 1. URL类基本概念 URL&#xff1a;Uniform Resource Locator 统一资源定位符 表示统一资源定位…

Hadoop——Hive相关问题汇总

(1) 连接数据库时SSL问题 解决方法&#xff1a;useSSLfalse要放最后 (2) jdbc:hive2://localhost:10091: Failed to open new session: java.lang.RuntimeException: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.authorize.AuthorizationException): Us…

银河麒麟服务器v10 sp1 nginx 部署项目

上一篇&#xff1a;银河麒麟服务器v10 sp1 nginx开机自动启动_csdn_aspnet的博客-CSDN博客 由于项目为前后端分离&#xff0c;前端项目使用nginx部署&#xff0c;VUE项目打包后上传至银河麒麟服务器&#xff1a; 8063 为前端项目文件目录&#xff0c;修改配置 &#xff0c;默认…

计算机基础专升本笔记四 计算机系统

计算机基础专升本笔记四 计算机系统 计算机系统 计算机系统由计算机硬件系统和计算机软件系统 组成。且是按照存储程序的方式工作的。计算机硬件就是由各种电子器件按照一定逻辑连接而成&#xff0c;看的见摸得着&#xff0c;是计算机系统的物质基础&#xff0c;计算机软件系统…

港科夜闻|第二届钟南山青年科技创新奖发布仪式在香港科大(广州)成功举办...

关注并星标 每周阅读港科夜闻 建立新视野 开启新思维 1、第二届钟南山青年科技创新奖发布仪式在香港科大&#xff08;广州&#xff09;成功举办。本次活动由中国青年科技工作者协会、中国青年创业就业基金会、钟南山青年科技创新奖评审委员会、共青团广东省委员会、广州市南沙开…

axios请求本地json文件

1.安装axios npm install axios --save 2.在main.js中引入 import { createApp } from vue import axios from axios import VueAxios from vue-axios const app createApp(App) app.config.globalProperties.$http axios; app.use(VueAxios, axios) 3.在根目录下的publi…

什么小程序需要社交相关类目?

1、陌生人交友&#xff1a;小程序内涉及提供在线陌生人交友服务&#xff0c;需补充社交-陌生人交友类目。 所需资质&#xff1a;《增值电信业务经营许可证》&#xff08;核准服务项目包含“互联网信息服务业务”&#xff09; 案例&#xff1a;如下图小程序涉及通过展示用户微…

【JAVA】云HIS系统功能菜单知识(三)

云HIS系统能帮助基层医院完成日常各类业务&#xff0c;提供病患预约挂号、病患问诊、电子病历、开药发药、会员管理、统计查询、医生工作站和护士工作站等一系列常规功能。 四、住院医生站 1.医嘱管理 登记信息、主治医生、患者信息、床位号、病案编号、住院号、身份证号、入…

从零到一nvm、npm、cnpm、yarn、vue全套安装和环境配置以及创建新项目和如何运行人家的项目大全,最详细,保姆级

NVM 1.下载 下载地址&#xff1a;Releases coreybutler/nvm-windows GitHub 可能需要开启魔法 划到下面。找到如图所示的文件下载即可2. 2.安装&#xff08;要记住安装的路径&#xff09; 基本一键默认即可&#xff0c;你要修改路径也可以&#xff0c;但不建议 下载好…

Rust之泛型、特性和生命期(四):验证有生存期的引用

开发环境 Windows 10Rust 1.71.0 VS Code 1.80.1 项目工程 这里继续沿用上次工程rust-demo 验证具有生存期的引用 生存期是我们已经在使用的另一种泛型。生存期不是确保一个类型具有我们想要的行为&#xff0c;而是确保引用在我们需要时有效。 我们在第4章“引用和借用”一…

Java将数据集合转换为PDF

这里写自定义目录标题 将数据集合转换为pdf引入包工具类测试代码导出效果 将数据集合转换为pdf 依赖itext7包将数据集合转换导出为PDF文件 引入包 <properties><itext.version>7.1.11</itext.version> </properties><dependency><groupId&…

Spring、Springboot、SpringMVC之间的关系

他们之间没有明确的区分。一个项目&#xff0c;可以说是SpringMVC,又是Sprigboot,又是Spring项目。 首先简单看一下他们的定义&#xff1a; Spring是包含众多容器的IOC(控制反转)容器&#xff0c;是一个分层的轻量级框架&#xff0c;为了简化Java程序的开发。Springboot在Spr…

实例022 非矩形窗体

实例说明 大部分Windows窗体都是一个矩形区域&#xff0c;读者是否已经厌倦了这种中规中矩的矩形窗体&#xff1f;本例中的窗体是一个打破传统矩形的异型窗体&#xff0c;运行该例会看到一个非常可爱的窗体&#xff0c;单击【X】按钮就会使窗口关闭。实例效果如图1.22所示。 …

基于MATLAB的无人机遥感数据预处理与农林植被性状估算实践

遥感技术作为一种空间大数据手段&#xff0c;能够从多时、多维、多地等角度&#xff0c;获取大量的农情数据。数据具有面状、实时、非接触、无伤检测等显著优势&#xff0c;是智慧农业必须采用的重要技术之一。本内容主要针对农业、林业、生态、遥感背景的对无人机遥感有兴趣的…

低代码平台协同OA升级,促进金融企业信息化建设

编者按&#xff1a;数字化办公是信息化时代每个企业不可避免的&#xff0c;OA系统是数字化办公的关键环节。如何与时俱进&#xff0c;保持企业的活力&#xff0c;增强企业综合竞争力&#xff1f;本文分析了企业OA系统为什么需要升级&#xff0c;并进一步指出如何实现升级。 关…

git stash 内容丢失找回【亲测好用】

直接将下列代码复制到 终端 会出现所有列表 也包括你删除/丢失的stash git log --graph --oneline --decorate $( git fsck --no-reflog | awk /dangling commit/ {print $3} ) 前面的黄色就是他的编号 例如我想回复 自己编辑修改项目 将编号复制重链即可 git stash apply …

MySQL使用

目录 1 MySQL的登录 1.1 服务的启动和终止 1.2 自带客户端的登录与退出 2 MySQL演示使用 2.1 MySQL的使用演示 2.2 MySQL的编码设置 1 MySQL的登录 1.1 服务的启动和终止 MySQL安装完毕以后&#xff0c;需要启动服务器进程&#xff0c;不然客户端无法连接数据库。 在前面…