Home »
        Golang »
        Golang Find Output Programs
    
        
    Golang Pointers | Find Output Programs | Set 1
    
    
    
    
	    This section contains the Golang pointers find output programs (set 1) with their output and explanations.
	    
		    Submitted by Nidhi, on October 21, 2021
	    
    
    Program 1:
package main
import "fmt"
func changeValue(v *int) {
	*v = 20
}
func main() {
	val := 10
	fmt.Println("Value is: ", val)
	changeValue(&val)
	fmt.Println("Value is: ", val)
}
    Output:
Value is:  10
Value is:  20
    Explanation:
    In the above program, we created two functions changeValue() and main(). The changeValue() function assigns a new value to the specified pointer. In the main() function, created a variable val initialized with 10. Then passed the address of the val variable. Then we printed the updated value of the val variable.
    
    Program 2:
package main
import "fmt"
func changeValue(v *int)
func main() {
	val := 10
	fmt.Println("Value is: ", val)
	changeValue(&val)
	fmt.Println("Value is: ", val)
}
func changeValue(v *int) {
	*v = 20
}
    Output:
./prog.go:5:6: missing function body
./prog.go:14:6: changeValue redeclared in this block
	prog.go:5:21: previous declaration
    Explanation:
    The above program will generate a syntax error because function prototype func changeValue(v *int); is not required in the Go language.
    
    Program 3:
package main
import "fmt"
func main() {
	val := 10
	var ptr *int
	ptr = &val
	*ptr = 50
	fmt.Println("Value is: ", val)
	fmt.Println("Value is: ", *ptr)
}
    Output:
Value is:  50
Value is:  50
    Explanation:
    In the above program, we created a variable val and pointer ptr. Then we assigned the address of val into pointer ptr. After that, we assigned the new value to the *ptr. It will change the value of val. Then we printed the value of val and *ptr.
    
    Program 4:
package main
import "fmt"
func main() {
	var val int = 10
	var ptr1 *int
	var ptr2 **int
	ptr1 = &val
	ptr2 = &ptr1
	**ptr2 = 50
	fmt.Println("Value is: ", val)
	fmt.Println("Value is: ", *ptr1)
	fmt.Println("Value is: ", **ptr2)
}
    Output:
Value is:  50
Value is:  50
Value is:  50
    Explanation:
    In the above program, we created a variable val, ptr1 and ptr2. Then we assigned the address of val into pointer ptr1, and assigned the address into ptr2. After that, we assigned the new value to the **ptr2. It will change the value of val. Then we printed the value of val, *ptr1, and **ptr2.
    
    Program 5:
package main
import "fmt"
func main() {
	var val string = "hello"
	var ptr *string
	ptr = &val
	fmt.Printf("%s\n", *ptr)
	fmt.Printf("%c\n", val[1])
}
    Output:
hello
e
    Explanation:
    In the above program, we created a variable val, ptr. Then we assigned the address of val into pointer ptr. After that, we printed the *ptr and the 2nd character of the string val.
    Golang Find Output Programs »
    
    
    
    
    
    
    
  
    Advertisement
    
    
    
  
  
    Advertisement