返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >go语言的形参占用内存吗
  • 269
分享到

go语言的形参占用内存吗

go语言Golang函数 2023-05-14 20:05:10 269人浏览 薄情痞子
摘要

形参变量在未出现函数调用时并不占用内存,只在调用时才占用,调用结束后将释放内存。形参全称“形式参数”,是函数定义时使用的参数;但函数定义时参数是没有任实际何数据的,因而在函数被调用前没有为形参分配内存,其作用是说明自变量的类型和形态以及在过

形参变量在未出现函数调用时并不占用内存,只在调用时才占用,调用结束后将释放内存。形参全称“形式参数”,是函数定义时使用的参数;但函数定义时参数是没有任实际何数据的,因而在函数被调用前没有为形参分配内存,其作用是说明自变量的类型和形态以及在过程中的作用。

go语言的形参占用内存吗

教程操作环境:windows7系统、Go 1.18版本、Dell G3电脑。

函数是组织好的、可重复使用的、用来实现单一或相关联功能的代码段,其可以提高应用的模块性和代码的重复利用率。

函数定义和函数调用

函数构成了代码执行的逻辑结构,在Go语言中,函数的基本组成为:关键字 func、函数名、参数列表、返回值、函数体和返回语句,每一个程序都包含很多的函数,函数是基本的代码块。

定义语法:

func 函数名(形参列表)(返回值类型列表) {
  函数体,通常会有return语句,返回值
}
  • 函数名:函数的标识符,用于找到函数,内部是一个指向函数代码的地址。

  • 形参列表:由变量和类型构成

  • 返回值类型列表:函数返回值的类型,多个返回值需要指定多个。

  • 函数体:实现函数功能的具体语句。 return语句:返回值语句

函数调用语法:

函数名(实参列表)

函数参数

用于在调用函数时向函数传递数据。

  • 实参,实际参数。调用时给的参数。指的是具有的特定实际数据的参数。

  • 形参,形式参数。定义时使用的参数。指的是用来表示函数需要参数,而定义时参数是没有任实际何数据的。 函数/方法在被调用前没有为他们分配内存,其作用是说明自变量的类型和形态以及在过程中的作用。

    实参与形参的关系:形参只能是变量(要指明它的数据类型);实参可以是变量、常量或者表达式。

    实参与形参的个数、位置以及它们对应的数据类型应当一致。

当调用时会发生使用实参为形参变量赋值的过程,称为参数的传递。在函数的执行期间,形参是有具体数据的,形参当于函数内声明的变量。参数的传递,分为值传递,地址传递两种方式。地址传递时,需要形参定义为指针类型,调用时需要取得地址传参。

  • 调用函数时若出现实参是数组名,则传递给形参的时数组的首地址。

  • 实参传递给形参是单向传递。形参变量在未出现函数调用时并不占用内存,只在调用时才占用。调用结束后将释放内存。

示例代码:

func funcTest(p1 int, p2 *int) {
  p1++
  *p2++
  fmt.Println(p1, *p2)
}
func main() {
  var (
    a1 = 42
    a2 = 42
  )
  funcTest(a1, &a2)
  // 参数赋值过程
  fmt.Println(a1, a2)
}

以上会输出

43 43
42 43

【相关推荐:Go视频教程、编程教学】

以上就是go语言的形参占用内存吗的详细内容,更多请关注编程网其它相关文章!

--结束END--

本文标题: go语言的形参占用内存吗

本文链接: https://www.lsjlt.com/news/203479.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • go语言的形参占用内存吗
    形参变量在未出现函数调用时并不占用内存,只在调用时才占用,调用结束后将释放内存。形参全称“形式参数”,是函数定义时使用的参数;但函数定义时参数是没有任实际何数据的,因而在函数被调用前没有为形参分配内存,其作用是说明自变量的类型和形态以及在过...
    99+
    2023-05-14
    go语言 Golang 函数
  • go语言的形参是否占用内存
    本篇内容主要讲解“go语言的形参是否占用内存”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“go语言的形参是否占用内存”吧!形参变量在未出现函数调用时并不占用内存,只在调用时才占用,调用结束后将释...
    99+
    2023-07-04
  • Go语言中形参是否占用内存?
    go语言中,值类型的形参不会占用额外内存,而引用类型的形参会占用指向堆中实际数据的指针的大小。 Go 语言中形参是否占用内存 在 Go 语言中,形参是传递给函数的参数。对于值类型(in...
    99+
    2024-04-04
    内存 go语言 形参 内存占用
  • Go语言中形参内存占用的机制解析
    go语言形参在函数栈上分配内存:值传递机制:形参是源值的副本,原值不会被修改。内存分配:形参分配的内存大小取决于数据类型,例如:基础数据类型:预定义大小指针类型:8字节结构体类型:成员变...
    99+
    2024-04-03
    go 内存管理 go语言 内存占用
  • 深度探讨:Go语言形参内存占用情况
    go语言中形参在栈上创建,生命周期与函数调用范围相同。基本类型占用8字节,指针占用8字节(32位系统4字节),结构和数组占用与类型定义匹配的字节数。实际用例中,形参指针指向堆上数组数据,...
    99+
    2024-04-04
    go语言 形参内存占用 内存占用
  • c语言中形参占用存储单元吗
    是的,形参在 c 语言中占用存储单元。详细说明:1. 形参在函数栈帧中分配存储单元。2. 实参值被复制到形参存储单元。3. 对形参修改不会影响实参。 形参在 C 语言中占用存储单元吗?...
    99+
    2024-05-07
    c语言
  • 内存管理揭秘:Go语言形参内存使用分析
    go语言函数形参在栈中分配内存,可在函数内修改,但不影响调用函数中实际参数的值,这是因为形参是局部变量,与实际参数隔离。 内存管理揭秘:Go语言形参内存使用分析 在Go语言中,函数形参...
    99+
    2024-04-04
    go语言 内存管理
  • 破解谜底:Go语言的形参内存消耗
    go 语言中,函数参数按值传递,但指针参数例外,会修改指向的值并在调用者处反映。传递指针时,需要额外分配内存存储指针,可能导致内存消耗问题。可通过按值传递指针副本解决此问题,避免额外分配...
    99+
    2024-04-04
    go语言 形参内存消耗
  • 优化Go语言应用的内存占用和垃圾回收效率
    要优化Go语言应用的内存占用和垃圾回收效率,可以采取以下几个方面的优化策略:1. 减少内存分配:避免频繁的内存分配,可以使用内存池和...
    99+
    2023-10-12
    Go语言
  • c语言中的形参能为空吗
    c语言中,函数的形参可以为空,即无参函数。无参函数的特点包括简洁易读、编写容易,但灵活性和可重用性较差,只适用于特定情况,如编写实用程序函数或初始化函数。 C 语言中的形参是否能为空 ...
    99+
    2024-05-02
    c语言
  • win11内存占用比win10高吗
    本文小编为大家详细介绍“win11内存占用比win10高吗”,内容详细,步骤清晰,细节处理妥当,希望这篇“win11内存占用比win10高吗”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。win11内存占用比win...
    99+
    2023-06-30
  • c语言中形参可以是常量吗
    c语言中形参可以是常量,通过在形参类型前加上const关键字声明为常量形参。常量形参优点:提高代码健壮性和可读性;缺点:限制灵活性,可能导致性能开销。 C语言中形参可以是常量吗? 答案...
    99+
    2024-05-07
    c语言 代码可读性
  • 不同语言中内存管理与Go语言内存管理的差异
    go 语言的内存管理与传统语言(如 c++++、java)不同:传统语言:采用手动内存管理,程序员负责分配和释放内存块。go 语言:采用垃圾回收(gc),自动管理内存,程序员无需手动管理...
    99+
    2024-04-11
    go语言 内存管理 c++
  • Go语言内存管理详解
    Go语言内存管理详解 Go语言作为一种现代化的编程语言,自带了垃圾回收器,这使得开发者无需手动管理内存,极大地简化了内存管理的复杂度。本文将详细介绍Go语言的内存管理机制,并通过具体的...
    99+
    2024-04-02
  • C语言形参与实参如何使用
    这篇文章主要讲解了“C语言形参与实参如何使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C语言形参与实参如何使用”吧!前言如果把函数比喻成一台机器,那么参数就是原材料,返回值就是最终产品;...
    99+
    2023-07-05
  • 详解Go语言中的内存对齐
    目录前言基础知识看个问题什么是内存对齐为什么需要内存对齐unsafe.AlignOf()内存对齐规则举个例子空结构体的对齐规则总结前言 前面有篇文章我们学习了 Go 语言空...
    99+
    2024-04-02
  • c语言中形参和实参的区别
    形参和实参是函数调用中的概念,形参用于接收实际数据,实参用于传递实际数据。形参位于函数头,实参位于函数调用时;形参和实参建立单向关联,实参可修改形参但反之不行;作用域上形参限于函数内而实...
    99+
    2024-04-27
    c语言 作用域
  • c语言中实参和形参的关系
    函数调用中,实参与形参一一对应,实参值复制到形参中,遵循值传递原则。 ausnahme:数组类型实参传递的是起始地址,形参修改会影响实参数组元素。 C语言中实参和形参的关系 实参和形参...
    99+
    2024-04-29
    c语言
  • c语言中的实参和形参的区别
    实参是函数调用时传递的实际值,而形参是函数定义中声明的占位符变量,用于接收实参值。实参在调用时确定,形参在定义时确定;实参可以改变,形参只能在函数体内修改。 实参和形参在 C 语言中的...
    99+
    2024-05-02
    c语言
  • C语言结构体计算内存占用问题解析
        c语言中结构体使用是非常广泛的,但是结构体有一个问题,就是如果开头的字段属性是字符类型(char),紧跟着的是其他类型,比如整型、长整型、双精度、浮点型,...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作