for-range使用地址赋值注意点

for-range取地址遍历会是最后一个元素值

package main

import (
   "fmt"
)

func main()  {
    
    

   strs := []string{
    
    "1", "3", "4"}
   res := []string{
    
    }
   res_add  := []*string{
    
    }
   for _, val := range strs {
    
    
      res = append(res, val)
      res_add = append(res_add, &val)
      fmt.Println(val)
      fmt.Println(&val)
   }
   for _,val := range res_add {
    
    
      fmt.Println(*val)
   }


}

func test(a *string)  {
    
    
   fmt.Printf("====%s",*a)
}

输出:
1
0xc000010200
3
0xc000010200
4
0xc000010200
4
4
4

猜你喜欢

转载自blog.csdn.net/qq_33457548/article/details/121239083
今日推荐