标签:arr int fmt modify a1 Println 数组 GO
package main
import (
"fmt"
"unsafe"
)
func get_arr() (ret [3]int) {
ret = [3]int{1, 2, 3}
fmt.Printf("get_arr, ret:%p\n", &ret)
return ret
}
func modify_arr(arr [3]int) {
fmt.Println("in modify_arr begin:", arr)
arr[0] = 100
fmt.Println("in modify_arr end:", arr)
/*
in modify_arr begin: [1 2 3]
in modify_arr end: [100 2 3]
*/
}
func modify_arr2(arr *[3]int) {
fmt.Println("in modify_ar2r begin:", arr)
(*arr)[0] = 100
fmt.Println("in modify_arr2 end:", arr)
/*
in modify_arr begin: [1 2 3]
in modify_arr end: [100 2 3]
*/
}
func main() {
fmt.Println("--------------------hello world ,hello array")
var arr1 [3]int
var arr2 [5]int
// 数组的定义,长度是数组的一部分
// 数组一经定义,数组的长度已经固定,不能修改。
fmt.Println("arr1:", arr1)
fmt.Printf("%T %T\n", arr1, arr2)
fmt.Println("sizeof(arr1):", unsafe.Sizeof(arr1))
// 数组的初始化
// 1.
var a1 [3]int = [3]int{1, 2, 3}
fmt.Println("a1:",a1)
// 2.
var a2 = [3]int{1, 2, 3}
fmt.Println("a2:",a2)
// 3. 省略长度的初始化
var a3 = []int{1, 2, 3}
fmt.Println("a3:",a3)
// 4. 按索引的初始化
var a4 = []int{0:1, 2:2}
fmt.Println("a4:",a4)
// 数组赋值, 数组是值类型
a_tmp := a1
fmt.Println("a_tmp:", a_tmp)
a_tmp[0] = 100
fmt.Println("a_tmp:", a_tmp, " a1:", a1)
ret := get_arr()
fmt.Println("ret:", ret)
fmt.Printf("main, ret:%p\n", &ret)
// 函数返回值居然也可以是数组
modify_arr(a1)
fmt.Println("main, modify over1:", a1) // a1 没有变
modify_arr2(&a1) // 传地址
fmt.Println("main, modify over2:", a1) // a1 没有变
// main, modify over2: [100 2 3
}
标签:arr,int,fmt,modify,a1,Println,数组,GO 来源: https://blog.csdn.net/shen_chengfeng/article/details/122791731
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。