草庐IT

CHAR_INFO

全部标签

c++ - 在 C++ 中,使用 bool 而不是 char 有什么意义?

sizeof(char)和sizeof(bool)都等于1(在我的编译器/系统/不管怎样,我听说它并不总是相同的值),bool只能存储true或false,而char可以取更多的值,并且可以使用按位运算符充当多个bool变量(8位,每个位可以用作1个bool,总共8个bool)那么使用bool代替char有什么优势吗?那么除了可读性之外还有别的吗?我在某处读到,即使占用更多内存,int的处理速度也比short或byte快。char和bool在速度上有什么区别吗? 最佳答案 使用bool的要点是表达意图。如果变量旨在存储具有true/

c++ - 双重标准?为什么只对 char* const& a = "bla"发出警告?

在尝试深入研究thisquestion等案例背后的机制之后暴露了,我仍然不明白为什么下面代码中的第三行只生成警告,而第二行是错误。intmain(){constchar*const&a="bla";//Validcodeconstchar*&a2="bla";//Invalidcodechar*const&a3="bla";//Shouldbeinvalidbutsettlesforawarningreturn0;}我知道虽然引用初始化正在将字符串文字转换为指针引用,但它不应该删除任何cv-qualifiers对象具有,并且由于转换后的类型是constchar*const(从字符串文字

c++ - 这行代码中的 `const char* yes[5]`代表什么?

我对C++中的typedef有疑问例如:typedefconstchar*yes[5];typedef是否给出了constchar*的替代名称,因此constchar*的替代名称是yes[5]?yes[5]这里代表什么?以及如何创建两个yes数组并初始化两者之一? 最佳答案 没有。这声明了一个yes类型,它是五个constchar*的数组。参见thislink并在文本区域内键入constchar*yes[5];。 关于c++-这行代码中的`constchar*yes[5]`代表什么?,我

C++ 函数返回 const char *

我为单元测试类开发了一个小辅助函数,它需要我的vector并将其转换回constchar*.我写这个是为了将它传递给gtest的ASSERT_STREQ用于简单比较的宏。在这里:constchar*convertVecToChar(std::vector&source){std::vector::size_typesize=source.size();char*data=(char*)malloc(sizeof(char)*(size+1));memcpy(data,&source[0],size);data[size]=0;returndata;}这是一个被调用的例子:ASSERT_

c++ - 通过引用传递 char 数组

我正在通过引用传递一个char数组,但是当我从函数返回并打印该数组时,它什么也不显示。我做错了什么?#includeusingnamespacestd;voidfunc(char[]);intmain(){chara[100];func(a);cout问候 最佳答案 你可能会做的是:voidfunc(char(&array)[10]){}转换为:通过引用传递10([10])个字符(char)的数组([..])((&..)). 关于c++-通过引用传递char数组,我们在StackOver

命令“ python setup.py egg_info”失败,错误代码1 in/tmp/pip-build-build-fkyx6m64/misaka/

我在Fedora25上使用Django1.11。我正在使用虚拟环境,并且在尝试安装misaka:pip安装misaka时我收到以下错误:命令“pythonsetup.pyegg_info”失败,错误代码1在/tmp/pip-build-build-fkyx6m64/misaka/这是追溯:Collectingdjango-misakaDownloadingdjango-misaka-0.2.1.tar.gzCollectinghoudini.py(fromdjango-misaka)Downloadinghoudini.py-0.1.0.tar.gzCollectingmisaka(fromd

c++ - 为什么data()和c_str()返回的是char const*,而operator[]返回的是char&?

为什么std::string::data和std::string::c_str()返回指向const字符的指针,而std::string::operator[]返回对可变字符的引用?std::stringstring("eightfoldisthegreatest");autos=string.data();*s='r';//illegalautot=&string[0];*t='r';//totallyfineauto&c=string[0];c='r';//totallyfine为什么std::string::data()和std::string::c_str()不返回char*,

c++ - 为什么 char *A 能够保存字符串而 char A 不能?

我无法理解为什么字符指针能够保存字符串。不应该像字吗,只要能装一个字就可以了。 最佳答案 假定字符指针指向字符串的开头。指针本身指向字符串中的第一个字符,使用指针的代码假定字符串的其余部分在内存中跟随它,直到它到达\0。 关于c++-为什么char*A能够保存字符串而charA不能?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/19824045/

c++ - const char myVar* 与 const char myVar[]

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:Differencebetweenusingcharacterpointersandcharacterarrays有什么区别:constchar*myVar="HelloWorld!";constcharmyVar[]="HelloWorld!";如果有的话?

c++ - 使用指向 char 的指针时访问冲突写入位置

我正在编写一个非常简单的程序,用于从字符串中删除重复的字符。我运行它visualstudio并得到错误:Unhandledexceptionat0x00d110d9ininteviews.exe:0xC0000005:Accessviolationwritinglocation0x00d27830.我真的不明白问题是什么。当前单元格获取下一个单元格的值。voidremove(char*str,chara){while(*str!='\0'){if(*(str+1)==a){remove(str+1,a);}*str=*(str+1);//HEREIGETTHEERROR++str;}}