草庐IT

UNSIGNED_INT

全部标签

c++ - 统一初始化int* : how can it be forced?

以下代码无法使用clang++3.8.0和g++6.3.0进行编译(编译器标志为-std=c++11-Wall-Wextra-Werror-pedantic-errors):intmain(){int*a=int*{};//doesn'tcompile//^^^^can'tbeparsedasatype(void)a;usingPInt=int*;PIntb=PInt{};//compilessuccessfully//^^^^isparsedasatype(void)b;}这是一种强制编译器以正确方式解释int*{}的方法吗(typedefingofint*是其中一种方式)?

c++ - switch 语句和对象隐式 int 转换

在C++中,直接在隐式转换为int的对象上使用switch语句是否合法/正确?而不是使用返回对象标记的方法。classAction{public:enumEType{action1,action2,action3};operatorint()const{returnmType;}private:ETypemType;/*...*/}intmain(){Actiona=/*...*/switch(a){caseAction::EType::action1:/*...*/break;caseAction::EType::action2:/*...*/}} 最佳答

c++ - 将 int 数组转换为 char*

这可能吗?我想将其转换为char*,以便稍后检索该值。 最佳答案 当然:intarray[4]={1,2,3,4};char*c=reinterpret_cast(array);有效范围是从c到c+sizeof(array)。您可以对任何POD类型执行此操作。您可以从字节序列中强制转换://assumingcaboveint(&pArray)[4]=*reinterpret_cast(c);这保证有效。但是,您似乎正试图通过网络发送内容,这可能会引入其他问题您正在寻找的过程称为序列化(并且有一个FAQentry)。这是当您获取一个对

c++ - 通过在 Fortran 中调用 C++ 函数将 Fortran int 数组传递给 C++

我正在尝试在Fortran子例程中调用C++函数。这个C++函数应该更新一个整数数组。这是我写的一个非工作代码。什么问题?!FortranfunctionthatcallsaC++function.subroutinemy_function()integer(4)ar(*)integer(4)get_filled_ar!Needcorrectsyntaxhere.ar=get_filled_ar()end//C++function:extern"C"{voidget_filled_ar(int*ar){ar[0]=1;ar[1]=10;ar[3]=100;}}

c++ - 从 unsigned const char * 类型转换为 char const *

我想将unsignedconstchar*转换为charconst*以传递给strcpy函数请推荐一些方法 最佳答案 (constchar*)my_signed_char在C++中,有更多惯用的方法来转换它,但由于您使用的是strcpy,所以您似乎不是在编程惯用的C++。 关于c++-从unsignedconstchar*类型转换为charconst*,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/

c++ - unsigned-signed 下溢机制

我知道以下内容unsignedshortb=-5u;由于下溢,评估为b为65531,但我不明白5u在转换为-5之前是否转换为带符号的int,然后重新转换回无符号以存储在b中,或者-5u是等于0-5u(不应该这样,-x是一元运算符) 最佳答案 5u是一个文字无符号整数,-5u是它的否定。无符号整数的否定定义为从2**n中减去,得到相同的结果包装从零减去的结果。 关于c++-unsigned-signed下溢机制,我们在StackOverflow上找到一个类似的问题:

c++ - operator++()和operator++(int)有什么区别?

这个问题在这里已经有了答案:Overloading++forbothpreandpostincrement(4个答案)关闭9年前。我有我老师制作的程序中的这些行代码:TimeKeeper&operator++(){d_seconds++;return*this;}constTimeKeeperoperator++(int){TimeKeepertk(*this);++(*this);returntk;}我的老师问我们的问题之一是“operator++()返回一个引用而operator++(int)返回一个值,请解释为什么?”谁能给我解释一下??如果您需要其余的代码,我不介意把它放在上面

c++ - 这是什么语法 : "ACGT"[(int)qrand() % 4]

我正在查看Qt特定的C++solution对于典型的生产者/消费者问题。这是生产者的代码:classProducer:publicQThread{public:voidrun(){qsrand(QTime(0,0,0).secsTo(QTime::currentTime()));for(inti=0;i我无法理解for循环中的第二行,即。"ACGT"[*]语法。它具体做什么?这是Qt特定的还是我不知道的C++语法?PS:完整源代码here 最佳答案 它生成一个随机字符:A、C、G、T。Literal"ACGT"是charconst[

c++ - unsigned long long 的问题

我在C++中试验unsignedlonglong的限制,遇到了一些麻烦。当我像这样将500万乘以500万时:unsignedlonglongtest=5000000*5000000;变量test的值是18446744072704921600而不是25000000000000。我的理解是unsignedlonglong可以表示0到18446744073709551615,那么这里发生了什么?谢谢! 最佳答案 默认情况下,您的编译器将5000000视为32位值。当您将两者相乘时,您仍然只使用32位值,因此它会溢出。仅当对等式左侧进行赋值

c++ - C++中的int(expr)是什么意思?

在查看friend项目中的一些代码时,我最近看到了类似这样的语法。#includeintmain(){std::cout当您运行上面的代码时,您会得到6,如果使用int功能(如强制转换),这是预期值。但是,我以前从未见过这种语法,也无法在网上找到它的文档。我还做了一个实验,发现这种语法在C中无效。谁能用文档引用解释这个语法的含义? 最佳答案 这不是构造函数调用或“函数”。没有“int函数”。这是函数式转换符号;it'sjustacast.它与(int)(32.5/5)相同(在这种特殊情况下)。而且,不,C没有它。