为什么在Go中无法将整数添加到“已取消引用”的指针变量中?

mamr:

来自Python,我目前正在学习Go,并试图将自己的头缠在指针上。

我写了这段代码是为了理解这个概念:

a := 1
b := &a
fmt.Println(b) // Shows the memory address of a
fmt.Println(*b) // Shows the value 1
*b++
fmt.Println(a) // Shows the value 2 (as expected)

我尝试使用此代码来增进理解。但是,以下内容不起作用:

a := 1
b := &a
fmt.Println(b) // Shows the memory address of a
fmt.Println(*b) // Shows the value 1
b = *b + 1 // Compile error: invalid operation: b * +1 (mismatched types *int and int)
fmt.Println(a)

显然,*b是type *int,而值1(显然)是type int但是,为什么*b++在第一个示例中可以增加a的值

eminlala:

从一开始就:

b := &a

此处b的类型是*int,指向内存中存储值的位置的指针a这样做时*b,您正在访问位置b指针所指向的值

当您这样做时*b++,它代表*b = *b + 1您要增加的位置b指针所指向的值

b = *b + 1之所以无效,是因为您试图将*b1都为的类型添加intb,这是一个指针(为的类型*int)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么Qt将“ PWD”添加到没有相对引用的库中?

无法弄清楚为什么此测试无法将项目添加到ArrayList中

为什么Go将字节添加到我的字符串中?

将整数添加到指针有什么作用?

无法将ejs值添加到脚本变量中?

将项目添加到ViewModel中的属性后,为什么observableArray无法实现视图?

为什么我无法使用Excel VBA将行添加到组合框列表中?

为什么无法将节点添加到邻接列表中?

将整数添加到指针

将 np.random.normal() 添加到每个元素时,为什么会在数组中得到整数?

如果将commons-lang jar添加到引用的库中,为什么会出现此错误

在正确的索引处将整数添加到已排序的ArrayList中

C取消引用结构中的整数指针

无法将文件中的条目正确添加到二维指针数组中

为什么我无法将 CSV 文件中的新项目添加到 PHP 的 while 循环内的数组中?

C ++无法返回已添加到矢量列表中的所有变量

为什么在将变量添加到ArrayList时出错?

为什么我不能在Assembly中声明一个使用已取消引用的变量的值的变量?

[GWT]为什么找不到已添加到CSS布局容器中的小部件?

如何在Go中取消引用指针?

无法将元素添加到共享指针的线程安全锁定队列中

为什么我无法将APNs Development iOS类型的证书添加到配置文件中

为什么将取消引用的指针传递给指针类型?

我无法将jQuery添加到WebStorm,为什么?

为什么有时在匹配中取消引用变量?

将Django应用添加到已安装的应用中且无法迁移的问题

在Python中添加到局部变量(整数)

将带有唯一指针的向量添加到头文件后,为什么会出现“尝试引用已删除的函数”错误?

将数组添加到Java中的队列(指针问题?)