char string void*的一些转换

来源:互联网 发布:金融数据分析师工资 编辑:程序博客网 时间:2024/06/05 19:10

原来不想遇到的问题终于又遇到了 在此做个记录

string string_1 = "string_1";string string_2 = "string_2";char char_1 = 'char_1';char char_2[] = "char_2";//不能在头文件定义char char_10[10] = "char_10";void *p1 = &string_1;void *p2 = &char_1;void *p3 = &char_10;void *p4 = (void *)string_2.c_str();trace(string_1)//string_1trace(char_1)//1trace(char_10)//char_10trace((string *)p1)//0x2cfc8ctrace((char *)p2)//11 这里多出来一个1trace((char *)p3)//char_10trace((char *)p4)//string_2

此外还有些小问题要注意

就是(char *)后面强制转换的是空的话,可能会影响到控制台输出问题

比如我这次就遇到了 可能会让控制台后面都不会输出,貌似是opengl控制台程序卡死,但是绘图地方还正常的

有时候也会崩溃


另外在c++11之前的时候 头文件 不能char char_10[10] = "char_10";//错误 不能直接初始化

在gcc中却是带上11都没法初始化,一直报错array used as initializer

后来用string初始化,或者干脆不初始化 在其他地方
strcpy(char_10, "xxx");

0 0
原创粉丝点击