草庐IT

VARIABLES

全部标签

c++ - 没有内部作用域的 if 语句?

Afaik,代码中的每一对{}都会创建一个新范围。即使它只是为了它而使用,没有任何if、for、函数或其他需要它的语句:voidmyFun(void){inta;{intlocal;}}我开始怀疑-当编写if语句时不使用大括号(带有1行正文)是否仍会创建一个新范围?voidmyFun(inta){intb;if(a==1)inttmp;//isthisonelocaltoif?elseinttmp2;//orthisone?b=2;//couldIusetmphere?} 最佳答案 N4140[stmt.select]/1读取:Th

c++ - 为什么变量用最大值而不是零初始化

多年没有用C++,现在用test写c++项目。当我开始调试时,我发现奇怪的是,默认情况下变量没有初始化为零。例如,当我观察我的类未初始化变量(unsignedint)时,我看到它的值3452816845instedofexpectedzeo...这会导致单元测试出错。我使用这样的初始化:TEST_METHOD(TestPlus){Entity*entity=newEntity();entity->mCreateOperator(entity->Plus);entity->SetContactValue(1);entity->SetContactValue(2);entity->mPro

c++ - 如果我尝试在 C++ 中将大于 pow(2,64)-1 的值分配给 unsigned long long 会怎样?

如果我有两个unsignedlonglong值,比如pow(10,18)和pow(10,19),我将它们相乘并将输出存储在另一个unsignedlonglong类型的变量中……我们得到的值是显然不是答案,但它有任何逻辑吗?每次我们尝试使用任意大的数字时,我们都会得到一个垃圾类型的值,但是输出与输入值有任何逻辑吗? 最佳答案 C++中的无符号整数类型遵循模运算规则,即它们表示对2N取模的整数,其中N是数字整数类型的值位(可能小于其sizeof倍CHAR_BIT);具体来说,该类型包含值[0,2N)。因此,当您将两个数字相乘时,结果是数

c++ - C++ 中的 "Variable ' i ' was not declared in scope "是什么?

在练习C++代码时,我使用了在for循环中声明的变量。我希望它在另一个for循环中再次使用它。但它向我显示了一个错误,即variableiwasnotdeclaredinscope我在EclipseIDE中尝试了相同的循环thesymboliwasnotresolved.示例代码与此类似:#includeusingnamespacestd;intmain(){for(inti=0;i 最佳答案 您必须为每个范围声明变量:#includeusingnamespacestd;intmain(){for(inti=0;i在第一个循环之后,

c++ - 创建一个字符串变量并要求在同一行输入?

我绝对讨厌编程中这些不必要的步骤,在这些步骤中,您在一行中声明并分配一个变量,然后在下一行请求输入。为了简短起见,我想创建一个变量并要求在同一行上输入所有内容。目前我正在编写这样的代码:stringname="";cout>name;//Toomanystepsfornoreason这是我的目标:stringname=cin>>name显然,该行在C++中不起作用,如果我闭上眼睛并掠夺它,它也不会起作用。有什么小技巧吗?我的意思是在分配数组时可以使用for循环,那么为什么不在一行中声明和输入分配呢?我知道读者会试图跳出窗外。goto证明了这个理论,是的,我自豪地使用它:)感谢任何帮助!

C++ - 变量中的 3 个可能值?

我需要存储一个30个字母的组合,但每个字母只能是“0”、“1”或“2”。当我使用sizeof(myString)时,它返回32。我想使用这个30个字母的组合来访问数组的一行,所以我想知道是否可以使用某种类型的3值bool来存储3个值中的1个。 最佳答案 3^30=205891132094649(~2E14),小于64位整数的最大值(~2E19),因此您可以将字符串以1:1的方式映射到64位整数。一个明显的方法是将您的字符串视为以3为基数的数字,这样转换起来会很慢。将其视为基数4会快得多,然后可以完全通过位移(无模数除法/乘法)完成转

c++ - 大数求和

我在ProjectEuler网站上做一些问题,遇到了一个问题。问题是,“计算出以下一百个50位数字之和的前十位数字。”我猜想有一些数学方法可以解决这个问题,但我只是想知道这么大的数字是如何求和的?我将数字存储为字符串并将每个数字转换为长整数,但数字太大以至于求和不起作用。有没有办法将非常大的数字作为变量(不是字符串)保存?我不想要问题的代码,因为我想自己解决这个问题。 最佳答案 Iwasjustwonderinghownumbersthisbigaresummed?你可以使用数组:longLargeNumber[5]={,....}

c++ - 如何从代码块中的 .cpp 文件创建 .exe?

我刚刚开始学习C++,并显示我找到的代码的输出thismethod.这在我第一次编译StructureofaProgramme.cpp时有效:#includeusingnamespacestd;intmain(){cout它给了我一个.exe,我打开并运行它,得到了一个可爱的“HelloWorld!”出现,但是当我尝试编译第二个时,Variables.cpp:#includeusingnamespacestd;intmain(){inta,b;intresult;a=5;b=2;a=a+1;result=a-b;cout我根本没有得到.exe,所以不知道如何打开它。我尝试重新编译Str

c++ - 添加公共(public)变量时崩溃

我有一个相当大的c++程序,包括一个类“Character”。在“Character.h”中,首先声明了CharacterSettings结构,然后是Character类(包括它们的构造函数)。Character具有(除其他外)CharacterSettings*设置和Pointpos。CharacterSettings有一个PointpreferredVelocity。这很好用。但是,当我将任何公共(public)变量添加到Character时,程序会在我调用此命令时崩溃:drawLine(character.pos,character.pos+character.settings-

c++ - 变量在没有赋值的情况下具有值 C++

#include#includeusingnamespacestd;intcount_number_place(intnumber){intnumber_placement;while(number>=1){number_placement++;cout>user_input_number;cout我正在尝试创建一个小程序来计算给定数字的位数。每当我输入像200这样的数字时,预期的结果都是3。相反,我得到了7963。当我在number_placement行放置断点时,我得到了7961的默认值,这很奇怪,因为代码中的任何地方都没有分配该值。你能解释一下为什么我会得到这个结果吗?