指针2)

news/2024/9/25 19:30:08/文章来源:https://www.cnblogs.com/yuli10952/p/18408774

1.&

&是地址符,类型是其后面的类型加一个“*”,任何变量都可以使用&来获取地址,但不能用在常量上。     

char a = 10; 

short b = 20; 

int c = 30; 

char*=pa

pa=&a

lea取地址:ebp-4的地址放入eax,再将eax里的地址放入ebp-10里

&可以取任何一个变量的地址

&a的类型是a的类型+*—char*

char a = 10;   

char* pa = (char*)&a;  

简写为:  

char* pa = &a;   

char** ppa = (char**)&pa;  —————————————

简写为:  

char** ppa = &pa;  

 ————————————————————————————————————————————————————————————————

x全局变量,后面是他的地址。y存的是x的值

y存的是x的地址

char* x   

*x==char

ebp-8里的值放入了ecx里(是一个地址)

将ecx里的地址里面的值存入edx

————————————————————————————————————————————————————————

数组

char arr[10];      

char* p = &arr[0]; //取数组第一个元素的地址    

char* p2 = arr; //简写    

*(p+i)=p[i]    

此时p指数组第一个的地址

*p指第一个的内容

———————————————————————————————————————————————————————————

 字符串

char* x = "china"; 

char y[] = "china";

void Function() 

 *(x+1) = 'A';不能修改(常量区

y[1] = 'A';可以修改(全局区

} 

——————————————————————————————————————————

void Function()   

{   

 char* x = "china";    

在常量区

 char y[] = "china";   

 

先将前四个字节拷贝到eax中(eax=6e696863),然后存入ebp-8,再将最后一个字节存入cx中

存入ebp-4

 *(x+1) = 'A';  修改不了

 y[1] = 'A';  修改成功

}   

——————————————————————————————————————————————————————————

指针函数

是一个函数,返回值是*类型

1.char* strcpy (char* dest, char* src);     

复制字符串src到dest中。返回指针为dest的值。     

char* strcpy (char* dest,char* src)   

{   

char* ret =dest

 while((*dest++)=(*src++));   

*dest =*src; 

dest++; 

src++;

 return ret;  

}   

3、char* strcat (char* dest, char* src);     

将字符串src添加到dest尾部。返回指针为dest的值。     

char* strcat (char* dest, char* src)   

{   

 while(*dest != '\0')  先将指针指向结尾即0,

  dest++; 

 while((*dest++ = *src++)!='\0');    

 return dest;  

}   

 

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

nssctf(web

web 1.浏览器也能套娃 查看wp,是ssrf漏洞 介绍:SSRF漏洞产生的原因是服务端提供了能够从其他服务器应用获取数据的功能,比如从指定的URL地址获取网页内容,加载指定地址的图片、数据、下载等等。 SSRF的利用:进行内网资源的访问:url?url=http://内网的资源url利用伪协议:…

RTE 大会报名丨AI 时代新基建:云边端架构和 AI Infra ,RTE2024 技术专场第二弹!

所有 AI Infra 都在探寻规格和性能的最佳平衡,如何构建高可用的云边端协同架构?语音 AI 实现 human-like 的最后一步是什么?AI 视频的爆炸增长,给新一代编解码技术提出了什么新挑战?当大模型进化到实时多模态,又将诞生什么样的新场景和玩法?AI 加持下,空间计算和新硬件…

002-QOS基本原理

QOS基本原理QOS概述什么是QOS QoS服务模型 区分服务模型 QoS常用技术 (DiffServ模型) QoS数据处理流程 (DiffServ模型)QoS流分类和流标记QoS数据处理流程 为什么需要流分类和流标记简单流分类外部优先级 - VLAN报文 外部优先级 - MPLS报文 外部优先级 - IP报文 各外部优先级间的…

本地部署运行 Google Gemma 开源大模型

Google 开源了 Gemma 大模型,有 7B 和 2B 两个版本,7B 模型的能力已经是开源模型中的领先水平。Gemma 可以轻松的在本地部署运行,如果你的显存在 8G 以上,可以体验 7B 版本,8G 以下的话可以试试 2B 版本。 部署过程如下: 1、使用 ollama 运行 Gemma 模型 2、使用 Chatbox…

mini-lsm通关笔记Week2Overview

Week 2 Overview: Compaction and Persistence在上周,您已经实现了LSM存储引擎的所有必要结构,并且您的存储引擎已经支持读写接口。在本周中,我们将深入探讨SST文件的磁盘组织,并研究在系统中实现性能和成本效益的最佳方法。我们将花4天时间学习不同的compaction策略,从最…

001-什么是VOQ

1、什么是VOQ(Virtual Output Queues)? VOQ(虚拟输出序列)是一种存储结构,由FIFO与RAM以及逻辑结构组合构成。在一些数据应用场景中能够有效存储数据并且能够及时输出,避免阻塞。一句话来说VOQ的优点在于:共享存储,较少存储资源,避免数据阻塞,提高数据输出效率。 2、…

pl/sql小技巧

pl/sql中文乱码 select userenv(language) from dual cmd命令行 set NLS_LANG=AMERICAN_AMERICA.ZHS16GBK pl/sql拖到cmd窗口下执行 pl/sql 显示行号pl、sql字体大小调整

结对项目-四则运算

github链接这个作业属于哪个课程 班级的链接这个作业要求在哪里 作业要求的链接这个作业的目标 实现四则运算自动生成程序,结对协作开发姓名 学号柳浩 3122004444洪吉潮PSP表格PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)Planning 计划 20 25Esti…

基于Sentinel自研组件的系统限流、降级、负载保护最佳实践探索

一、Sentinel简介 Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。 Sentinel 具有以下特征: •丰富的应用场景:Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景,例如秒杀(即突发流量控制在系统容量可以承受的范围)、…

信息学奥赛复赛复习03-CSP-J2019-03-纪念品-背包、01背包、完全背包

PDF文档公众号回复关键字:202409251 2019 CSP-J 题目3 纪念品 [题目描述] 小伟突然获得一种超能力,他知道未来 T天 N 种纪念品每天的价格。某个纪念品的价格是指购买一个该纪念品所需的金币数量,以及卖出一个该纪念品换回的金币数量 每天,小伟可以进行以下两种交易无限次:任…

《DNK210使用指南 -CanMV版 V1.0》第二十六章 摄像头图像捕获实验

第二十六章 摄像头图像捕获实验 1)实验平台:正点原子DNK210开发板 2)章节摘自【正点原子】DNK210使用指南 - CanMV版 V1.0 3)购买链接:https://detail.tmall.com/item.htm?&id=782801398750 4)全套实验源码+手册+视频下载地址:http://www.openedv.com/docs/boards/k…