C/C++ char*、char[]】的更多相关文章

1.const char* p: p is a pointer to const char(char const* p 一样)   意思就是不能通过p指针来修改p指向的内容(但是内容可以修改). 2.char* p      : p is a pointer to char   意思就是可通过p指针来修改p指向的内容 3.char* const p: p is a const pointer to char   意思就是p指针是一个常指针,他指向的内存地址不能变,定义的时候就得初始化   一旦给…
string.const char*. char* .char[]相互转换(全) https://blog.csdn.net/rongrongyaofeiqi/article/details/52442169#commentBox…
1.字符串 字符串本质就是一串字符,在C++中大家想到字符串往往第一反应是std::string(后面简称string) 字符串得从C语言说起,string其实是个类,C语言是没有class的,所以C语言的字符串其实就是字符数组,也就是char [ ] ,例如: char  str[10];   //定义了一个有十个元素的数组,元素类型为字符char char  str[10] = {"hello"};  //"h e l l o \0"五个字符赋给str数组, 然…
头段时间有人问过我这个问题,可是我一点头绪都没有,直接说不会.现在从网上找了点资料,看了看,知道点东西了. 一.string转char*. 主要有三种方法可以将str转换为char*类型,分别是:data(); c_str(); copy(); 1.data()方法,如: 1 string str = "hello"; 2 const char* p = str.data();//加const 或者用char * p=(char*)str.data();的形式 同时有一点需要说明,这里…
转化总结如下: 目标格式 源格式 string const char* char* char[] string NULL const char*=string.c_str(); const char*=string.c_str(); char*=const_cast<char*>(const char*); for(int i=0;i< string.length();i++) { char[i]=string[];} const char* string =const char*; N…
先说些题外话,今天学习execve(2)的使用,由于书上代码使用的是C89标准,所以下面这种代码都被我修改了 char* s[] = { "aaa", "bbb", "cc" }; 也就是在char前面加个const,因为"aaa"."bbb"."cc"都是字符串字面值(string literal),在C++标准中string literal只能转换成const char*,原因是即使…
一.本质区别 char* s是一个保存字符串首地址的指针变量,char a[]是许多连续的内存单元,单元中的元素为char类型.之所以用char *能达到char []的效果,还是字符串的本质,即给你一个字符串地址,便可以随心所欲的操作它.但是,char*和char a[]的本质属性是不一样的. 当定义 char a[10] 时,编译器会给数组分配十个单元,每个单元的数据类型为字符.而定义 char* s 时,这是个指针变量,只占四个字节,32位,用来保存一个地址,如: printf("%p&q…
本文转自:https://blog.csdn.net/rongrongyaofeiqi/article/details/52442169 一:转化总结形式如下: 使用时,要对源格式和目标格式进行初始化.源格式赋值为具体的内容,目标格式赋值为空. 二.总结方法: 1.        变成string,直接赋值. 2.        char[]变成别的,直接赋值. 3.        char*变constchar*容易,const char*变char*麻烦.<const_cast><c…
ByReference类有很多子类,这些类都非常有用. ByteByReference.DoubleByReference.FloatByReference. IntByReference.LongByReference. NativeLongByReference.PointerByReference. ShortByReference. W32API.HANDLEByReference.X11.AtomByReference.X11.WindowByReference ByteByRefer…
1.string->char* (1)data string s = "goodbye"; const char* p=str.data(); (2)c_str() string s = "goodbye"; const char* p=str.c_str(); (3)copy string str="hmmm"; ]; str.copy(p, , );//这里5代表复制几个字符,0代表复制的位置, *(p+)=‘\’;//注意手动加结束符…