从错误的提示来看,你是要把数组或者指针转换成字符来用了,而函数本身要求的参数类型是字符,最好贴点代码上来,不要多,就是定义和调用的部分就行。这种问题一般都是基本的小问题
char 类型赋值用' ' 不是" "
是一个字符指针(char*)赋给了一个字符型(char)变量,导致报错。例如:string s = "abc";char* c = s.c_str();这时会报错:invalid conversion from `const char*' to `char*'解决方法: char* c = const_cast<char *>(s.c_str());...
1、const char*是指向常量的指针,而不是指针本身为常量,可以不被初始化.该指针可以指向常量也可以指向变量,只是从该指针的角度而言,它所指向的是常量,通过该指针不能修改它所指向的数据.2、const char*是不能直接赋值到char*的,这样编译都不能通过,理由:假如可以的话,那么通过char*就可以修改const ...
char *strcpy( char *to, const char *from ); 给参数from 加上 const 修饰后,如果函数体内的语句试图改动指针from所指向的空间,编译器将指出错误。 2、防止修改指针指向的地址 void swap ( int* const p1 , int* const p2 ) 指针p1和指针p2指向的地址都不能修改。
从const char型 到char型的初始化,缺乏转型.例如:char *p="hello";会给你这个警告,不是吗?应该是这样const char *p="hello";
char *str = GetString();//cannot convert from 'const char *' to 'char *'; 正确的用法是: const char *str = GetString(); b.如果函数返回值采用“值传递方式”,由于函数会把返回值复制到外部临时的存储单元中,加const修饰没有任何价值。 如不要把函数int GetInt(void) 写成const int GetInt(void...
1)const在前面const int nValue; //nValue是constconst char *pContent; //*pContent是const, pContent可变const char* const pContent; //pContent和*pContent都是const2)const在后面,与上面的声明对等int const nValue; //nValue是constchar const * pContent; //*pContent是const, pContent可变char* ...
结构体s1初始化构造可以这么写,当你定义s2默认构造一个结构体student,下边的三句是对s2的成员赋值,与构造不同,一个汉字2个字节,字符串结尾\0占一个字节,"王武"其实是王武\0占5个字节,并且是常量,所以它的类型是const char[5],而你的结构体成员是char[10],两者类型不匹配,所以报错,对于字符串赋值你要么使用...
char name[20]; int age; char sex;} STU; 3、STU 是 struct stu 的别名,可以用 STU 定义结构体变量: STU body1,body2; 它等价于: struct stu body1, body2; 再如,为指针类型定义别名: typedef int (*PTR_TO_ARR)[4]; 表示PTR_TO_ARR 是类型int * [4]的别名,它是一个二维数组指针类型。接...