golang有没有指针
时间: 2023-06-21 09:24:59 浏览: 45
是的,Go 语言有指针。指针是一种变量,其值为另一个变量的内存地址。可以使用指针来传递变量的地址,以便在函数之间共享数据。在 Go 中,使用 `&` 运算符获取变量的地址,使用 `*` 运算符访问指针指向的变量。
以下是一个简单的示例,展示了如何声明和使用指针:
```
package main
import "fmt"
func main() {
// 声明一个整型变量 x
var x int = 10
// 声明一个指向整型变量的指针 p
var p *int = &x
// 打印变量 x 的值和地址
fmt.Println("x =", x)
fmt.Println("&x =", &x)
// 打印指针 p 的值和指向的变量的值
fmt.Println("p =", p)
fmt.Println("*p =", *p)
// 修改指针所指向的变量的值
*p = 20
// 再次打印变量 x 的值
fmt.Println("x =", x)
}
```
在上面的示例中,我们首先声明了一个整型变量 `x`,然后声明了一个指向该变量的指针 `p`,并将其初始化为 `&x`(即 `x` 的地址)。然后,我们使用 `*p` 访问指针所指向的变量的值,使用 `&x` 访问变量 `x` 的地址,最后使用 `*p = 20` 修改指针所指向的变量的值。
相关问题
golang有那些指针运算
在Golang中,指针运算非常有限,只支持以下两种指针运算:
1. 取地址运算符 `&`: 取得操作数的地址。
2. 取值运算符 `*`: 取得指针指向地址的值。
其他的指针运算,如指针的加、减、自增、自减等运算,在Golang中是不允许的。这是Golang为了保证程序的安全性和可靠性而做出的设计决策。
golang mysql 使用指针取值
在 Golang 中使用 MySQL 数据库时,可以使用指针取值的方式来获取查询结果。以下是一个示例代码:
```go
package main
import (
"database/sql"
"fmt"
_ "github.com/go-sql-driver/mysql"
)
func main() {
db, err := sql.Open("mysql", "user:password@tcp(127.0.0.1:3306)/database")
if err != nil {
panic(err.Error())
}
defer db.Close()
rows, err := db.Query("SELECT name, age FROM users")
if err != nil {
panic(err.Error())
}
defer rows.Close()
for rows.Next() {
var name string
var age int
err = rows.Scan(&name, &age)
if err != nil {
panic(err.Error())
}
fmt.Printf("Name: %s, Age: %d\n", name, age)
}
err = rows.Err()
if err != nil {
panic(err.Error())
}
}
```
在上述代码中,使用 `rows.Scan()` 方法将查询结果赋值给指定的变量 `name` 和 `age`。这里通过使用指针取值的方式,实现了将查询结果存储到变量中的功能。