golang学习6-指针

devtools/2024/11/25 21:11:46/

指针就是地址。 指针变量就是存储地址的变量。
*p:解引用、间接引用。
栈帧:用来给函数运行提供内存空间。取内存于 stack 上。

当函数调用时,产生栈帧。函数调用结束,释放栈帧。

栈帧存储:1.同部变量。2.形参。(形参与局部变量存储地位等同)3.内存字段描述值 

 

 

变量存储:
等号 左边的变量,代表 变量所指向的内存空间。
等号 右边的变量,代表 变量内存空间存储的数据值。

指针的函数传参。
传地址(引用):将形参的地址值作为函数参数、返回值后传递,
传值(数据据):将实参的 值 拷贝一份给形参。

传引用:在A栈帧内部,修改B栈帧中的变量值。

package mainimport "fmt"func swap(a, b int) {a, b = b, afmt.Println("a:", a, "b:", b)
}func swap2(x, y *int) {*x, *y = *y, *x
}func main() {//var a int = 10//var p *int = &a////a = 100//fmt.Println("a=", a)////*p = 250 //借助a变量的地址,操作a对应空间//fmt.Println("a=", a)//fmt.Println("*p", *p)////a = 1000//fmt.Println("*p", *p)//var a int = 100//fmt.Println("&a=%p\n", &a)////var p *int = nil//p = &a//fmt.Println("p=%p\n", p)//fmt.Println("a=%d,*p=%d\n", a, *p)//*p = 324//fmt.Println("a=%d,*p=%d\n", a, *p)////var p *int在heap上申请一片内存地址空间//*p = 100//p = new(int) //默认类型的 默认值//fmt.Println("%q\n", *p)a, b := 10, 20swap(a, b) //传变量值fmt.Println("a:", a, "b:", b)swap2(&a, &b) //传地址值fmt.Println("a:", a, "b:", b)//函数传参:值传递//实参将自己的值(地址值)拷贝一份,给形参
}


http://www.ppmy.cn/devtools/136935.html

相关文章

cookie反爬----普通服务器,阿里系

目录 一.常见COOKIE反爬 普通: 1. 简介 2. 加密原理 二.实战案例 1. 服务器响应cookie信息 1. 逆向目标 2. 逆向分析 2. 阿里系cookie逆向 1. 逆向目标 2. 逆向分析 实战: 无限debugger原理 1. Function("debugger").call() 2. …

神经网络(系统性学习四):深度学习——卷积神经网络(CNN)

相关文章: 神经网络中常用的激活函数神经网络(系统性学习一):入门篇神经网络(系统性学习二):单层神经网络(感知机)神经网络(系统性学习三)&#…

Apache Maven简介

Apache Maven 是一款强大的项目管理和构建自动化工具,主要应用于Java项目。它简化了构建流程、依赖管理以及项目配置。本文将向您介绍Apache Maven,解释其核心概念,并指导您掌握Maven的基本使用方法。 什么是Apache Maven? Mave…

golang实现TCP服务器与客户端的断线自动重连功能

1.服务端 2.客户端 生成服务端口程序: 生成客户端程序: 测试断线重连: 初始连接成功

git使用详解

一、git介绍 1、git简介 Git 是一个开源的分布式版本控制系统(最先进的,没有之一),用于敏捷高效地处理任何或小或大的项目。 Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。 Git 与常用…

基于python的机器学习(四)—— 聚类(一)

目录 一、聚类的原理与实现 1.1 聚类的概念和类型 1.2 如何度量距离 1.2.1 数据的类型 1.2.2 连续型数据的距离度量方法 1.2.3 离散型数据的距离度量方法 1.3 聚类的基本步骤 二、层次聚类算法 2.1 算法原理和实例 2.2 算法的Sklearn实现 2.2.1 层次聚类法的可视化实…

FPGA经验谈系列文章——7、预估逻辑级数

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 FPGA经验谈系列文章——7、预估逻辑级数 预估逻辑级数逻辑层级拆分1、加法器拆分2、比较器拆分总结预估逻辑级数 前面我们已经分析了加法器、比较器、条件语句的逻辑级数,那让我们来看一下下面这段代码,大…

LLM( Large Language Models)典型应用介绍 1 -ChatGPT Large language models

ChatGPT 是基于大型语言模型(LLM)的人工智能应用。 GPT 全称是Generative Pre-trained Transformer。-- 生成式预训练变换模型: Generative(生成式):可以根据输入生成新的文本内容,例如回答问题…