草庐IT

CHAR_BIT

全部标签

c++使用int和char *重载构造函数

我尝试使用int和char*重载构造函数。然后在调用0时有歧义。是否有任何解决方法/解决方案?CBigInt(unsignedint);CBigInt(constchar*);问题出在0线上:CBigInta;//somemorecodea*=0;感谢您的回答。 最佳答案 使构造函数之一显式。只有在传递的类型完全匹配时才会使用它。CBigInt(unsignedint);explicitCBigInt(constchar*); 关于c++使用int和char*重载构造函数,我们在Stac

c++ - 为什么 unsigned char 用于 RGB 像素数据?

我正在使用一些基本的计算机图形学来学习C++。像素数据通常表示为:unsignedchar*pixelsunsignedchar很好,因为它是0到255之间的值(256=2^8因为char是2个字节,1个字节是8位?)。这很好,因为在RGB中,颜色用0到255之间的数字表示。但是..我将其理解为单色图像,在正常图像中我有RGB,我会有3个未签名字符数组,一个用于红色,一个用于绿色,一个用于蓝色。像这样的东西:unsignedchar*pixels[3]但我从来没有发现类似的RGB像素数据 最佳答案 RGB图像通常以交错顺序存储(R1

c++ - char *foo 与 char* foo

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭10年前。简单的问题是:你为什么要写char*foo;不是char*foo;让我解释一下:对我(来自Java)来说,声明类似于;在上面的例子中,我声明了一个名为foo的变量,类型为char*(因为它是一个指向char的指针)。但无论我在哪里阅读c/c++/c#-Code,它看起来都像是一个名为*foo的char类型的变量。编译器不关心空格,但我作为开发人员关心。t

c++ - STL map<char*,char*> 析构函数

我知道映射析构函数调用每个包含元素的析构函数。会发生什么map?我看不到这段代码在/usr/include/c++/4.4中的什么地方编辑:我应该说map喜欢http://www.sgi.com/tech/stl/Map.html 最佳答案 当map被摧毁,它包含的所有元素也被摧毁。如果元素是类类型,则调用每个元素的析构函数。但是,请牢记上面map中包含的内容。正如您所料,它不是字符串——它只是指向字符串的指针。琴弦本身并没有被破坏。只有指针是。delete永远不会在指针上调用。恰当的例子:mapstrings;char*key=n

c++ - 为什么 ~(true^true) 不是真的? boolean 运算符(否定)适用于 `unsigned char` s,但不适用于 boolean 值? (C++)

我听说通常除了0之外的“一切”都是真的。但是现在我身上发生了非常奇怪的事情……或者我只是认为我以正确的方式做事,而我却没有。这是正在发生的事情:当我想检查a是否等价于b时,我可以使用NOT(aXORb)。当我检查unsignedchar时,一切正常,例如unsignedchara=5;unsignedcharb=3;unsignedcharc=~(a^b);给我c==249:a是:00000101,也就是5。b是:00000011,也就是3。~(a^b)是:11111001,即249。现在,让我们用bool来试试这个。cout这让我在控制台中:-1-2-2-10110false虽然我希

c++ - 开关盒中的 char 和 int 有什么区别?

我最近开始学C++,在学习switchcase的时候,我有这个疑惑。如果我在以下代码中使用int或char有什么区别:intFav_Car;switchcase代码如下switch(Fav_Car){case'1':cout当我运行该程序时,我注意到使用int会返回默认大小写,而使用char则效果很好。为什么会这样?而且,如果我使用case'1':和case"1":有什么区别 最佳答案 你的误解与switch()构造无关,都是关于单引号'':如果你写1,你得到一个值为1的整数,当你把它放在单引号'1'中时,你得到数字1的ASCII字

c++ - 没有堆的 static const std::vector<char> 初始化?

假设我想要一个无符号字符的std::vector。它是用初始化列表(这是C++11)初始化的,永远不会改变。我想避免任何堆分配,即使在启动时也是如此,并让整个vector像const字符串一样存在于数据段中。那可能吗?IE:staticconstvectorv{0x1,0x2,0x3,0x0,0x5};(这是一个有点学术性的问题;我知道为此使用C数组并不难。) 最佳答案 为什么不直接使用std::array为此?staticconststd::arrayv{0x1,0x2,0x3,0x0,0x5};这避免了任何动态分配,因为std:

c++ - 使 char 函数参数为 const?

考虑这个函数声明:intIndexOf(constchar*,char);其中char*是一个字符串,char是要在字符串中查找的字符(如果未找到char则返回-1,否则返回其位置)。使char也const有意义吗?我总是尝试在指针参数上使用const,但当按值调用某些内容时,我通常会不使用const。你有什么想法? 最佳答案 假设您不打算调整任一参数的值:我会将函数定义为:intIndexOf(constchar*const,constchar){//...}但保留函数声明为:intIndexOf(constchar*,char)

c++ - 调用对象 'char* ' 类型不是函数或函数指针

我有这个函数,它应该为给定的char*设置特定的时间格式:staticvoidtimeStamp(char*time){time(&strTime);strTime和curTime是这样声明的:tm*curTime;time_tstrTime;但出于某种原因我得到:calledobjecttype'char*'isnotafunctionorfunctionpointer在标记的地方。知道为什么吗?顺便说一句,我正在使用xCode。 最佳答案 您的函数参数time是一个指向char的指针。但是,在您的函数体中,如果它是您可以调用的函

c++ - 将char数组中的元素转换为int

我有一个包含80个元素的char数组,我正在尝试将特定元素转换为integer,但出现了一些数字错误。十六进制的数组元素40是0xC0。当我尝试将它分配给一个integer时,我得到了十六进制0xFFFFC0,我不知道为什么。chartempArray[80];//Readinfromfile,withelement40as0xC0inttempInt=(int)tempArray[40];//Outputas0xFFFFC0insteadof0x0000C0 最佳答案 根据您的实现,C++中的char类型是signed类型或uns