第一个data是指向字符的指针 第二个data就是个字符变量 他们类型不同
一步一步分开来看 data[5]是一个数组,内有5个数据, 再看前面的char*, 是指这5个数据的类型为char 即: 数组内每个数据是一个指向字符串的指针, 调用时data[0]就是一个char*, 即字符串 如要求输入5个学生的姓名, 就是用的这种数据结构 如果要返回,这个char*数组, 直接返回这个数组名, 但是...
因为''输出一个字符,而""里输出的是一个字符串,“1”其实是两个字符,还有一个是字符串结束符'\0',所以你写char a=“1”是错的,错误在于将一个字符串赋值给一个字符,char*a=‘1’也是不对的,将一个字符赋值给了一个字符串。正确的写法是char a='1';或者char *a=“1”...
概念上是不一样。前者是在默认存储区声明一个指向data存储类型的指针,名为x1,后者是在data存储区声明一个指向默认存储类型的指针,名为x1。如果默认存储区就是data区,那么这二者等价;否则不等价。
stringstr ="hello";constchar* p = str.data();//加const 或者用char * p=(char*)str.data();的形式 同时有一点需要说明,这里在devc++中编译需要添加const,否则会报错invalid conversion from const char* to char *,这里可以再前面加上const或者在等号后面给强制转化成char*的类型。
1、如果要将string转换为char*,可以使用string提供的函数c_str() ,或是函数data(),data除了返回字符串内容外,不附加结束符'\0',而c_str()返回一个以‘\0’结尾的字符数组。 2、const char *c_str(); c_str()函数返回一个指向正规C字符串的指针,内容与本string串相同. ...
code 表示pread是个常量,*data表示pread是指向内部ram区的指针,char表示pread指向的是char型数值的地址。所以,合起来,表示pread是指向内部RAM中的char型地址的常量指针。
1、如果要将string转换为char*,可以使用string提供的函数c_str(),或是函数data(),data除了返回字符串内容外,不附加结束符'\0',而c_str()返回一个以‘\0’结尾的字符数组。 2、const char *c_str(); c_str()函数返回一个指向正规C字符串的指针,内容与本string串相同. ...
int i;char data[0];//data是一个数组名;该数组没有元素;该数组的真实地址紧随结构体INFO之后;这种声明方法可以巧妙的实现C语言里的数组扩展。};图形扭曲了,空格被百度压缩掉了,真无奈!info ---> |---| |int i | |---| data是数组的名字;data | | 由于数组没有...
(char *)表示强制类型转换, char * 定义一个指向char类型的指针变量。楼主加油,我有好书一步,若需要留邮箱