golang fmt.Printf 和C语言printf差异

andarm · · 2768 次点击
C语言在代码层面上字符串需要终止符,'\0'实际上就是0. golang字符串在代码层面上是经过封装的,不需要你去操作终止符,没有'\0'这个东西。 golang里'\0XX'表示八进制数字,与0XX等价,比如'\010'与010等价,即十进制的8; 同理'\xXX'表示十六进制数字,与0xXX等价,比如'\x10'与0x10等价,即十进制的16. 所以直接用0就行了,或者用'\000'、'\x00'、000、0x00,本质上都是0.
#2
更多评论
jan-bar
想要拥有,必定付出。
Clang里面的'\0'实际就是字节0 golang里面木有这个,因为go的字符串是不需要已字节0结尾,因此你这个编译都会报错 你可以写成下面这样,你可以试试通过tcp之类的传到C里面就是你要的'\0': ```go func main() { var aa [1]uint8 aa[0] = 0 fmt.Println(aa[0]) } ```
#1
golang里面的'\0xx'表示的是八进制数字,但是'\0'会被编译器认为是一个非法的八进制数字,编译时就会报错
#3