# 7 天能找到 Go 工作吗？学学 Go 数组和指针试试

## Go 数组

[En]

Let’s take a look at the definition of an array, which is a sequence of fixed-length elements of a specific data type, with two key points, one of which is the fixed length of the array, and the other is the specific data type.

var variable_name [SIZE] varuable_type
// var 变量名 [元素长度/数量] 数据类型


[En]

The number of elements must be an integer type, and the data type can be any basic type, including an array type, in which case a multidimensional array will be formed.

package main

import "fmt"

func main() {

var a_array [3]int
fmt.Println(a_array [0]) // 打印第一个元素
fmt.Println(a_array [1]) // 打印第二个元素
}


[En]

After testing the code, you will find that before the array is initialized, the default value is the zero value of the data type, and there is also a problem of index value for the array, which is based on other languages and is easy to understand.

[En]

Let’s take a look at how to initialize arrays.

package main

import "fmt"

func main() {
var a_array1 [3]int = [3]int{1, 3, 5}
var a_array2 [3]int = [3]int{4, 6}
fmt.Println(a_array1[2])
fmt.Println(a_array2[2])
}


[En]

You can see that the array output is displayed as follows:

5
0


package main

import "fmt"

func main() {

a_array := [...]int{1, 2, 3}
fmt.Printf("%T\n", a_array)
}


## Go 指针

package main

import "fmt"

func main() {

var vari1 int = 10

fmt.Printf("变量地址：%x\n", &vari1)
}


变量地址：c000012088


Go 指针和 C 指针一样的概念，指针变量就是声明一个指向内存地址的变量。

[En]

Prior to use, you need to declare in advance, in the following format:

var var_name *var_type


[En]

For example, if we declare an integer pointer, we can use the following format.

var int_ptr *int


[En]

Next, we can do the following experiment to get [the value pointed to by the pointer] from the pointer. The code is as follows:

var vari1 int = 10

fmt.Printf("变量地址：%x\n", &vari1)

// 声明一个变量 ptr，用于存储变量地址
ptr := &vari1

// 输出 ptr 类型
fmt.Printf("ptr 类型：%T\n", ptr)

// 打印 ptr 的值
fmt.Println("ptr 值：", ptr)

// 对指针取值
value := *ptr
fmt.Printf("值类型：%T\n", value)

// 获取指针指向的值
fmt.Println("指针指向的值：", value)


变量地址：c000012088
ptr 类型：*int
ptr 值： 0xc000012088



• &：取出地址；
• *：根据地址取值。

[En]

The next step is to implement a value that is modified by a pointer.

func main() {

var vari1 int = 10

fmt.Printf("变量地址：%x\n", &vari1)

// 声明一个变量 ptr，用于存储变量地址
ptr := &vari1

// 对指针取值
value := *ptr

// 获取指针指向的值
fmt.Println("修改前，指针指向的值：", value)

// 修改指针 ptr 指向的值
*ptr = 444

// 获取指针指向的值
fmt.Println("修改后，vari1 值：", vari1)
}


Original: https://blog.51cto.com/cnca/5570023
Author: 梦想橡皮擦
Title: 7 天能找到 Go 工作吗？学学 Go 数组和指针试试

(0)

### 大家都在看

• #### 传输层协议：TCP与UDP协议的区别

TCP和UDP有哪些区别？ 关于TCP与UDP协议两个协议的区别，大部分人会回答，TCP是面向连接的，UDP是面向无连接的。 什么叫面向连接，什么叫无连接呢？在互通之前，面向连接的…

Python 2023年11月5日
065
• #### Python pandas判断DataFrame是否为空和DataFrame遍历

一、pandas pandas 是基于NumPy 的一种工具，该工具是为解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型，提供了高效地操作大型数据集所需的工…

Python 2023年8月19日
0116
• #### 深入浅出 JavaScript 中的 this

笔者最近在看 你不知道的JavaScript上卷，里面关于 this 的讲解个人觉得非常精彩。 JavaScript 中的 this 算是一个核心的概念，有一些同学会对其有点模糊和…

Python 2023年10月21日
066
• #### Python 数据分析之双色球高频数据统计

基础数据准备 基础数据是通过爬虫获取到。 以下是从第一期03年双色球开奖号到今天的所有数据整理，截止目前一共2549期，balls.txt 文件内容如下 ; Python 代码实现…

Python 2023年11月2日
0122
• #### linux云服务器Falsk，nginx+gunicorn+falsk 搭建简易web服务器

Python 2023年8月9日
096
• #### torch学习 (41)：torch中的tensor初始化操作

文章目录 1 tensor 2 sparse_coo_tensor：以稀疏方式创建 3 as_tensor：转换为tensor，且保留已有梯度历史等 4 from_numpy：nu…

Python 2023年8月23日
078
• #### ubuntu系统CPU性能模式设置

查看cpu所有核所处模式 cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor性能模式： performance节能模…

Python 2023年6月3日
0123
• #### 《Python编程从入门到实践 第二版》项目2 数据可视化

第 15 章 生成数据 软件准备 安装Matplotlib 安装ploty pip install matplotlib pip install plotly 15.2 绘制简单的…

Python 2023年9月3日
083
• #### 数据科学手把手：碳中和下的二氧化碳排放分析 ⛵

💡 作者：韩信子@ShowMeAI📘 数据分析实战系列：https://www.showmeai.tech/tutorials/40📘 本文地址：https://www.showm…

Python 2023年10月25日
0119
• #### python中modify的用法_Python：使用文件名和文件last modify tim创建数据帧

我想读取文件夹中的文件名，我已经用file=glob.glob…函数做了这个操作。 和加载项’file_last_mod_t’列上次修改文件时间…

Python 2023年8月9日
086
• #### 【DEBUG】解决pandas与numpy版本不协调导致的：Unable to import required dependencies: numpy: DLL load failed找不到指定的模块

Traceback (most recent call last):File “D:\hq_test.py”, line 74, infrom pytdx….

Python 2023年8月2日
0144
• #### Python数据分析（2）：numpy

1.1 创建数组 一维数组情况： import numpy as np a = np.array([1, 2, 3, 4]) b = np.array([‘产品编号’, ‘销售数量…

Python 2023年8月26日
079
• #### 利用pandas拆分单元格并进行分组聚合

背景： 最近指导老师布置了一个数据分析的任务要将三张表格进行整理 得到错题的数目 页行列表示错题的位置 思路： 我的思路是读取文件夹当中的文件名列表，然后利用for循环和panda…

Python 2023年8月17日
089
• #### python深度学习基于pytorch代码1.1生成Numpy数组

### 回答1： PyTorch_是一个用于 _深度学习_的开源 _Python_库，它是一种动态计算图框架，可以使模型的训练更加灵活。它提供了大量的高级功能，如自动微分、动态图构…

Python 2023年8月27日
078
• #### 天秀！花费 200W 设计的新版 “小米”图标，看看用Python怎么绘制？

最终呈现效果 哈哈，咋们在讲述之前，首先看看最终呈现的效果吧，整体来说还是很不错的。 ; 小米 “新” 图标背后的数学 前段时间，小米公司发布了一条微博，引…

Python 2023年9月7日
080
• #### Matplotlib中subplot以及subplots的用法

subplot 概述 matplotlib能够绘制精美的图表，但我们希望把一组图表放在一起进行比较，这时我们就需要用到subplot。 用法 plt.subplot()创建一个画像…

Python 2023年9月2日
0114