数组
1.引入
package main
import "fmt"
func main() {
//定义
var scores [3]int
scores[0] = 91
scores[1] = 87
scores[2] = 60
//求和
var sum int = 0
for i:= 0;i < len(scores);i++{
sum += scores[i]
}
//平均
avg := sum / len(scores)
fmt.Println(sum,avg)
}
2.数组名arr的用法
和cpp有区别,cpp的数组名类似于指针,这里不是,用*无法取值,也无法对它加数字。
package main
import (
"fmt"
)
func main() {
//默认初始化0
var arr [3]int16
//打印数组名这是打印数组内容
fmt.Println(arr)
//打印地址
fmt.Printf("arr的地址为:%p \n", &arr)
//fmt.Println(arr + 1) //不行,星号取值也不行
}
3.循环录入
(1)for i
(2)for range
4.数组初始化
第二种自动推断类型,第三种自动推断长度,第四种指定索引和值。
5.数组补充
package main
import (
"fmt"
)
// go的数组长度是数组类型的一部分
func main() {
var arr1 [3]int = [3]int{3, 6, 9}
fmt.Printf("arr1数组类型:%T", arr1)
var arr2 [6]int = [6]int{3, 6, 9, 1, 4, 7}
fmt.Printf("arr2数组类型:%T", arr2)
}
1)数组类型
2)数组的传值和传指针
package main
import (
"fmt"
)
// go的数组长度是数组类型的一部分
func main() {
/*var arr1 [3]int = [3]int{3, 6, 9}
fmt.Printf("arr1数组类型:%T", arr1)
var arr2 [6]int = [6]int{3, 6, 9, 1, 4, 7}
fmt.Printf("arr2数组类型:%T", arr2)*/
//数组传值
var arr3 [3]int = [3]int{3, 6, 9}
test1(arr3)
fmt.Println(arr3) //还是3,6,9.说明传值
test2(&arr3)
fmt.Println(arr3) //还是3,6,9.说明传值
}
// 数组是值类型,传参是传值,不会修改实参
func test1(arr [3]int) {
arr[0] = 7
}
func test2(arr *[3]int) {
(*arr)[0] = 7
}
6.二维数组
赋值同cpp
初始化:
7.二维遍历
1)for i
2) for range
形式同一维