Go语言中数组的基本用法演示_Golang

首先来看一下如何声明数组:

复制代码 代码如下:

package main

import "fmt"

var arr [2]int //申明一个数组

func main() {
 arr[0] = 1 //数组赋值
 fmt.Println(arr)
 arrtest := [3]int{1, 2, 3} //数组的另一种申明方式
 fmt.Println(arrtest)
 a := [...]int{1, 2} //[...]自动识别数组的长度
 fmt.Println(a)
 fmt.Println(len(a))//输出数组的长度
}

go语言可以自动计算数组的长度,譬如你知道数组有几个可以如下申明

复制代码 代码如下:

a:=[...]int{1,2,3,45}

指针数组

复制代码 代码如下:

a:=[3]int{1,2,3}
var p * [3]int = &a //这种是指针数组 我们看到可以直接输出指向数组的指针
x , y :=1 ,3
a := [...]*int{&x ,&y}
str.Println(a) //输出这样[0xc080000068 0xc080000070]的地址 这就是数组指针

可以用new关键字申明

复制代码 代码如下:

p := new([10]int)
fmt.Println(p)  //&[0 0 0 0 0 0 0 0 0 0] 输出一个指针

多维数组跟其他语言一样

复制代码 代码如下:

c := [3][2]int{{1: 2}, {2, 1}, {2, 2}}
fmt.Println(c) //输出[[0 2] [2 1] [2 2]]

下边是slice的申明和使用其实这就是一种动态的数组

复制代码 代码如下:

package main

import "fmt"

var arr [2]int //申明一个数组

func main() {
 arr[0] = 1 //数组赋值
 fmt.Println(arr)
 arrtest := [3]int{1, 2, 3} //数组的另一种申明方式
 fmt.Println(arrtest)
 a := [...]int{1, 2} //[...]自动识别数组的长度
 fmt.Println(a)
 fmt.Println(len(a))//输出数组的长度
}

来看一下冒泡算法之go语言版

复制代码 代码如下:

package main

import "fmt"

func main() {
 a := [...]int{3, 2, 5, 8, 6}
 fmt.Println(a)
 num := len(a)
 for i := 0; i < num; i++ {
  for j := i + 1; j < num; j++ {
   if a[i] < a[j] {
    temp := a[i]
    a[i] = a[j]
    a[j] = temp
   }
  }
 }
 fmt.Println(a)
}

时间: 2024-09-17 03:55:59

Go语言中数组的基本用法演示_Golang的相关文章

Go语言中的方法定义用法分析_Golang

本文实例讲述了Go语言中的方法定义.分享给大家供大家参考.具体分析如下: 事实上,可以对包中的任意类型定义任意方法,而不仅仅是结构体. 不能对来自其他包的类型或基础类型定义方法. 复制代码 代码如下: package main import (     "fmt"     "math" ) type MyFloat float64 func (f MyFloat) Abs() float64 {     if f < 0 {         return fl

浅议C语言中数组和指针的互操作

曾听好多朋友说,C是一种怀旧的语言,因为它的历史很久远,然而自从各种面向对象的编程语言的相续出现让它的影响力日减. 当然了,这是无可非议的,但是C的高效性是其他语言无妨比拟的,所以我们有必要把握其中的精华与奥妙,也就有必要知道其中的基本的数据结构的比如数组,稍微有点深度的堆栈.列表.结构体等的操作和实现.指针也是C语言中的一个很优秀灵活的结构,对它的了解也是必不可少的. 我们一般都认为数组是一维的数据存储结构,因为二位数组或者说矩阵都可以看作是多个一维数组的组合结构,定义在其上的数据存储访问方式

JS中数组Array的用法示例介绍

 这篇文章主要介绍了JS中数组Array的用法,需要的朋友可以参考下 new Array()  new Array(len)  new Array([item0,[item1,[item2,...]]]  使用数组对象的方法:  var objArray=new Array();  objArray.concact([item1[,item2[,....]]]-------------------将参数列表连接到objArray的后面形成一个新的数组并返回,原有数组不受影响.如:var arr=

c语言-初学C语言中数组下标的问题

问题描述 初学C语言中数组下标的问题 void strtol(char s[]){ int i=0; while(s[i++]); while(i>=0) s[i--]=s[i]; } 发现没有报错,怎么解释呢 显然会出现s[0]=s[-1]不是吗 解决方案 s[i--]=s[i]; 这个执行的是s[i]=s[i]; i--; 再说了,就算数组访问下溢,也不会报错. 解决方案二: s[-1]相当于*(s-1),也就是说数组的第一项之前的一字节内存.越界了.编译器没有你想象的那么智能,所以没报错

编程c语言-C语言中数组的元素如果不赋值会改变吗

问题描述 C语言中数组的元素如果不赋值会改变吗 做了一个循环,循环里是一个if判断,如果是真就给数组赋值,正常的话只会做一次,然后就不会在给数组赋值了,结果做完整个循环后,被赋值的数组的数又全变成初始的0了,这是怎么回事. 解决方案 看你的代码,找到之后,需要用break跳出循环.如果是函数调用,检查下形参和实参. 解决方案二: 源码贴出来,凭空没法诊断.有可能是数组寿命到了,或者其他原因 解决方案三: 加一个flag判断一下,如果是第一次就正常使用,如何不是,就退出 解决方案四: 你赋的值就是

c语言-C语言中数组中的 怎样打印到屏幕上

问题描述 C语言中数组中的 n 怎样打印到屏幕上 比如说 一个字符串 数组 char a [] = {'n'}; 想要在屏幕上显示 n 这个字样该怎么实现? 解决方案 你是要打印n两个字符么?如果时的话,可以这样 char a [] = {"\n"}; 解决方案二: char a[] = "n";然后输出就ok了:因为这里是转义字符,要输出斜杠的话必须要写成的形式 解决方案三: 查找替换,将n替换成\n 解决方案四: n是换行符号,如果要单纯显示"n&qu

希望大神帮助下-关于C语言中数组的输出,求…………

问题描述 关于C语言中数组的输出,求---- #include int main() {int i,a[10]; for(i=1;i<=10;i++) a[i]=i; printf("%d ",a); return 0; } 怎么才可以输出这样形式呢? 12345678910 为什么老是输出 1244960 这种形式呢?谢谢! } 解决方案 printf("%d ",a[i]); C语言中的数组输出不能整体输出,的用for循环依次输出每一个元素 数组名就像一个

C语言中数组的一些基本知识小结_C 语言

初始化数组 int ages[3] = {4, 6, 9}; int nums[10] = {1,2}; // 其余的自动初始化为0 int nums[] = {1,2,3,5,6}; // 根据大括号中的元素个数确定数组元素的个数 int nums[5] = {[4] = 3,[1] = 2}; // 指定元素个数,同时给指定元素进行初始化 int nums[3]; nums[0] = 1; nums[1] = 2; nums[2] = 3; // 先定义,后初始化 定义但是未初始化,数组中有

再谈C语言中数组和指针之间的互操作

我曾说过,在C语言中只有一维的数组(这是我对数组的看法),而且数组元素可以是任何类型的数据(或对象),自然也可以是另外的一个数组(因为数组也是一种数据类型).所以如果你坚持要说有多维数组,那也不是不可能的事情.我们只要把一个数组赋值给另一个数组的元素就可以了.当然了,我们必须保证在程序编译期数组的大小是一个固定的常数. 其实,数组的操作很简单的.只要我们确定一个数组的大小和指向该数组下标为0的元素的指针,其他的任何一个数组下标的运算都等同于一个对应的指针运算,所以我们说"数组和指针是可以相互操作