当我使用char或char*时,visual studio 2012(11)只会播放最后一个字符,例如:
#include <iostream>
#include <string>
int main(){
using namespace std;
char chName = 'Alex';
cout<<chName;
}
Run Code Online (Sandbox Code Playgroud)
它只显示"x".它是正确的是我使用
string strName = "Alex"
但在那些有参数作为char的函数中,字符串不能作为参数传递.在这种情况下,VS编译器说字符串不能转换为int.还告诉我char和char*之间有什么区别.我是一名PHP开发人员,C++非常混乱.请帮我.
char一次只能保留1个字符; 在这种情况下,它会保留你的最后一个角色'x'.
char *是指向一个或多个char对象的指针,如果读取正确,也可以用作字符串.所以设定
const char *chName = "Alex";
cout << chName;
Run Code Online (Sandbox Code Playgroud)
应该输出整个名字.
另一个问题是你使用报价.'x'表示a char,while "x"表示chars 的数组,称为字符串文字.
如果有一个函数要求你传递char*,你可以通过
const char *param = "this is da parameter";
function (param);
Run Code Online (Sandbox Code Playgroud)
要么
std::string param = "da parameter"; //std::string is a type of string as well.
function (param.c_str ());
Run Code Online (Sandbox Code Playgroud)
您也可以使用声明
char chName[] = "Alex";
Run Code Online (Sandbox Code Playgroud)
这将创建一个chars 的本地数组(即5 chars,因为它在数组的末尾附加一个空字符).所以,chName[3]应该回来'x'.这也可以cout像其他人一样流式传输
cout << chName;
Run Code Online (Sandbox Code Playgroud)
编辑:顺便说一句,你应该int在你的函数中返回一个main ().喜欢0.
char chName = \'Alex\'; \nRun Code Online (Sandbox Code Playgroud)\n\n是一个多字符文字,它是实现定义的。
\n\n_ C++ standard, \xc2\xa72.14.3/1 - Character literals _\n\nAn ordinary character literal that contains more than one c-char is a multicharacter \nliteral . A multicharacter literal has type int and implementation-de\xef\xac\x81ned value.\nRun Code Online (Sandbox Code Playgroud)\n\n而不是这个,你应该使用
\n\nconst char *chPTR = "Alex"; \nRun Code Online (Sandbox Code Playgroud)\n\n或者
\n\nchar chName[] = "Alex";\nRun Code Online (Sandbox Code Playgroud)\n\nchar 和 char* 之间的区别
\nchchar ch;是一个char 变量,可以存储单个 ascii 字符,而chchar *ch;是一个指向 char 的指针,可以存储 char 变量的地址。
char 和 String 之间的区别
\n请参阅此帖子。