做网站首选科远网络,农产品网络营销推广方案,北海做网站有哪家,做生意在哪个网站做分类 指针
指针是一个代表着某个内存地址的值。这个内存地址往往是在内存中存储的另一个变量的值的起始位置。Go 语言对指针的支持介于 Java 语言和 C/C语言之间,它既没有想 Java 语言那样取消了代码对指针的直接操作的能力,也避免了 C/C语言中由于对指针的滥用而造成的安全和…分类 指针
指针是一个代表着某个内存地址的值。这个内存地址往往是在内存中存储的另一个变量的值的起始位置。Go 语言对指针的支持介于 Java 语言和 C/C语言之间,它既没有想 Java 语言那样取消了代码对指针的直接操作的能力,也避免了 C/C语言中由于对指针的滥用而造成的安全和可靠性问题。
基本操作-和C相同 保存某个变量的地址需要指针类型*int 保存int的地址**int 保存 *int 地址
Go语言虽然保留了指针但与其它编程语言不同的是
默认值 nil没有 NULL 常量操作符”取变量地址“*”通过指针访问目标对象不支持指针运算不支持-“运算符直接用”.”访问目标成员同样的不能操作没有合法指向的指针变量。
new
动态分配空间
同样的也可以自动推导类型q : new(int) 注意go语言无需向c语言一样动态申请的空间还需要自己手动释放。go语言中我们只需使用new函数无需担心其内存的生命周期或怎样将其删除因为Go语言的内存管理系统会帮我们打理一切。
普通变量做函数参数 指针做函数参数 这些都和C相同。
数组
数组是指一系列同一类型数据的集合。数组中包含的每个数据被称为数组元素(element)一个数组包含的元素个数被称为数组的长度。 数组长度必须是常量且是类型的组成部分。[2]int 和[3]int 是不同类型。 语法var id [50]int
操作数组元素是通过0-len()-1的下标进行操作的下标可以是常量也可以是变量。数组初始化—全部初始化 var a [5]int[5]int{1,2,3,4,5}自动推导类型 b:[5]int{1,2,3,4,5}数组初始化—部分初始化没有初始化的元素自动赋值为0指定某个元素初始化 d : [5]int{2: 10, 4: 20}
二维数组 初始化全部初始化以及部分初始化 数组比较和赋值
只支持以及!其他的不支持数组比较是比较是不是每一个元素都一样2个数组之间进行比较要保证数组类型一样。注意[]中间的数字也算类型的一部分 同类型的数组可以赋值。
随机数
如果种子参数一样每次运行程序产生的随机数都一样
以当前时间作为种子参数 可以通过Intn()来限制随机数的范围
冒泡排序 在函数间传递数组