module main
fn main() {
//测试机器是64位操作系统
println(sizeof(voidptr)) //输出8个字节
}
fn main() {
a := 'abc'
println(&a) // 取变量地址,返回地址
b := &a
println(*b) // 取指针对应的值,返回abc
}
fn main() {
a := 1
println(isnil(&a)) // 返回false,变量只能通过:=来初始化,一定会有初始值
// 但是通过调用C代码返回的指针,有可能是空指针,所以在使用前可以用isnil函数判断一下
f := C.popen('ls'.str, 'r'.str)
if isnil(&f) {
println('f is nil')
} else {
println('f is not nil')
}
}
module main
fn main() {
u := u8(10)
b := &u //&u类型
c := `a`
b_ptr := byteptr(b) // byteptr类型,等价于&u
c_ptr := charptr(&c) // charptr类型,一般用于跟C集成使用,等价于*char
println(typeof(b).name)
println(typeof(b_ptr).name)
println(typeof(c_ptr).name)
}