c语言的 char** 和 golang []string类型怎么相互转换?

Python011

c语言的 char** 和 golang []string类型怎么相互转换?,第1张

var gostrs []string

var cstrs []*C.char

header := (*reflect.SliceHeader)(unsafe.Pointer(&cstrs))

header.Data = cstrspointer

header.Len = cstrslength

for _, cstr := range cstrs {

gostrs = append(gostrs, C.GoString(cstr))

}

goto语句也称为无条件转移语句,其一般格式如下: goto 语句标号; 其中语句标号是按标识符规定书写的符号, 放在某一语句行的前面,标号后加冒号(:)。语句标号起标识语句的作用,与goto 语句配合使用。

如: label: i++

loop: while(x<7)

goto loop

C语言不限制程序中使用标号的次数,但各标号不得重名。goto语句的语义是改变程序流向, 转去执行语句标号所标识的语句。

goto语句通常与条件语句配合使用。可用来实现条件转移, 构成循环,跳出循环体等功能。

扩展资料:

go to在C语言中的应用:

统计从键盘输入一行字符的个数。

#include<stdio.h>

int n=0

int main(void) {

    printf("input a string: ")

      loop: if (getchar()!='\n') {

        n++

     goto loop

    }

printf("output: %d\n",n)

}

例如输入:abcdefghijklmnopqrstuvwxyz

然后回车Enter

输出:26

本例用if语句和goto语句构成循环结构。当输入字符不为'\n'时即执行n++进行计数。

然后转移至if语句循环执行,直至输入字符为'\n'才停止循环。

参考资料:百度百科-go to 语句