草庐IT

CHAR_BIT

全部标签

c++ - 用 const char*const 解释 constexpr

这个问题在这里已经有了答案:What'sthedifferencebetweenconstexprandconst?(10个答案)关闭7年前。我有以下代码:staticconstexprconstchar*constmyString="myString";能否请您解释一下与以下内容的区别:staticconstchar*constmyString="myString";在这种情况下,constexpr有什么新内容?

c++ - 如何获取 char 数组中元素的地址?

我有一个char数组,我需要获取每个元素的地址。cout给我一​​个有效地址,但是如果我试图获取特定元素的地址,它会吐出垃圾:cout 最佳答案 std::coutoperator重载了对于char*,它会尝试打印它认为您的指针指向第一个字符的以nul结尾的字符串。但并非所有char数组都是以nul结尾的字符串,因此是垃圾。 关于c++-如何获取char数组中元素的地址?,我们在StackOverflow上找到一个类似的问题: https://stackove

c++ - "char[]"是正确的类型吗?

昨天,我惊讶地发现一些代码似乎将char[]视为一种类型:typedefstd::unique_ptrCharPtr;以前,我会这样写:typedefstd::unique_ptrCharPtr;//CustomdefinitionofCharDeleteromitted经过一些研究,我发现char[]语法是有效的,因为std::unique_ptr提供了一个模板专门化来处理数组(例如,它会自动调用delete[]用于数组而不需要自定义删除器)但是char[]在C++中究竟意味着什么?我见过这样的语法:constchara[]="Constantstring";//Example1ch

c++ - 如何在 C++ 中将命令行参数的整个集合(char**)作为只读传递?

假设我有这样一个程序:#include#include#include//Takesvaluesandoutputsastringvector.std::vectorfoo(constintargc,char*args[]){std::vectorstrings;for(inti=0;istrings=foo(argc,args);for(unsignedinti=0;i要点是我正在尝试将main()函数的char**参数传递给另一个函数或类。(我知道有更好的方法可以实现上述程序的功能,我的问题是关于将char**参数作为只读传递)。问题:我发现我不能像第一个那样使第二个foo()参数

c++ - 使用转换将 vector<char> 转换为字符串

我想转换一个vector到std::string并以一种方式进行转换。我快到了,但下面代码的结果是vector,而我想要一个字符串(vector中所有字符串部分的串联)。有关详细信息,请参阅我的代码示例。stringConvertHexToAscii(constcharinput){std::ostringstreamoss;oss(input);returnoss.str();}vectorreadBuffer;//thisismyinputreadBuffer.push_back(0x1c);readBuffer.push_back(0x09);vectorresultVec;st

c++ - C++中char[]的子串

我有chart[200];cin.get(s,200);inti=5;intj=10;除了将每个元素分别复制到另一个数组之外,是否有任何简单的方法可以从t获取substriing(i,j)?没有strings等。只有chart[200]。 最佳答案 如果允许修改t,可以将t[j]设置为0,然后使用t+i获取子字符串。如果没有,您将不得不制作一份拷贝。也就是说,您为什么不能只使用std::string来避免让自己头疼呢? 关于c++-C++中char[]的子串,我们在StackOverfl

c++ - 从 char* move std::string 的构造函数

我有一个函数f返回一个char*。函数文档说:Theusermustdeletereturnedstring我想从中构造一个std::string。要做的琐碎的事情是:char*cstring=f();std::strings(cstring);deletecstring;是否可以使用C++功能做得更好?我想写类似的东西std::string(cstring)避免泄漏。 最佳答案 std::string将制作一个空终止字符串参数的拷贝并管理该拷贝。没有办法让它拥有您传递给它的字符串的所有权。所以你所做的是正确的,我建议的唯一改进是检

c++ - char 和 char*(指针)

我想了解指针是如何工作的,所以我创建了这个小程序。首先我创建一个p指针,它指向一个char。第一个问题就到这里了。如果我创建一个指针,它的值是一个内存地址(如果我将它指向一个非指针对象),但这次在我的例子中它是“哈哈”。为什么它在char*中以这种方式工作?以及如何使用cin>>p为其增加值(value)?我的第二个问题是,我创建了一个q字符,它在我创建它时具有*p指针的值。但是它的值和地址也是“h”,但为什么呢?一定是这个char对象的内存地址!这是毫无意义的:D(mingw-gcc)#includeintmain(){/*char*p;cin>>p;//forexample:hah

c++ - 在 std::map 中使用 char* 作为键,它是如何工作的

这个问题直接关系到usingcharasakeyinstdmap.我了解传入的比较函数的作用以及为什么char*类型需要它作为键。但是,我不确定更新的实际工作方式。我很好奇您更新key的情况。std::map如何知道如何比较constchar*之间的相等性,cmp_str只告诉map插入键的顺序那个树。我已经深入研究了STL_tree.h代码(pulledfromhere),但没有找到太多。我唯一的猜测是它在进行直接内存比较。我对底层STL_tree类如何处理这种情况很感兴趣,或者如果它不能始终正确处理,会出现什么边缘情况?代码#include#include#includestruc

c++ - 全局 const char* 上的错误 LNK1169

我在使用VisualStudio2010和C++时遇到了一些奇怪的行为。我有一个头文件,我在其中声明了一些全局常量#ifndefCONSTANTS_H#defineCONSTANTS_H#defineWIN32_LEAN_AND_MEAN//Macros...#defineSAFE_RELEASE(ptr){if(ptr){ptr->Release();ptr=NULL}}#defineSAFE_DELETE(ptr){if(ptr){deleteptr;ptr=NULL;}}//Constants...constchar*CLASS_NAME="WinMain";constcharG