这很可能是一个非常愚蠢的问题,但是在 C++ 中,字符串的数据类型是什么?我想让变量 x = "Slim Shady"。
我会将 x 声明为 int 吗?我尝试将其声明为字符,但是当我计算变量时,它只给出第一个字母。任何帮助,将不胜感激。
您需要包含头文件字符串
#include <string>
然后你就可以使用 std::string
std::string x="Slim Shady"
http://en.cppreference.com/w/cpp/string/basic_string
您也可以不使用 std::strings,如果您不想使用它们,尽管它们是您的最佳选择
您可以使用 Char 数组或 char 指针(C 字符串)
char x[]="Slim Shady";
或者
char* x="Slim Shady";
auto 关键字是 C++0x 的一个特性。在你学习 C++ 基础之前,你应该远离它
std::string
是最好的选择。但您也可以使用auto
, 如auto x = "Slim Shady!";
. 这意味着您不必弄清楚使用表达式的类型。
“Slim Shady”是char[11]
可转换为const char*
. 您还可以使用它来初始化任何大于 11 的字符数组。请参阅:
char a[] = "Slim Shady";
char a[11] = "Slim Shady";
const char* a = "Slim Shady";
char a[12] = "Slim Shady";
看到这个小代码:
#include <typeinfo>
#include <iostream>
template <class T>
void printTypeName(T t)
{
std::cout << typeid(T).name() << std::endl;
}
int main() {
printTypeName("Slim Shady");
printTypeName<decltype("Slim Shady")>("Slim Shady");
}
你得到(在 gcc 上)错位的名字:
PKc
A11_c
据我所知-第一个是const char*
第二个char[11]
。这很容易解释,因为当将任何数组传递给函数时 - 它被转换为 const 指针。
你只是说:
std::string x = "Slim Shady";