variable-declaration相关内容

指向数组/指针数组的C指针消歧

以下声明有什么区别: int* arr1[8];int (*arr2)[8];诠释 *(arr3[8]); 理解更复杂的声明的一般规则是什么? 解决方案 int* arr[8];//一个 int 指针数组.int (*arr)[8];//指向整数数组的指针 第三个和第一个一样. 一般规则是运算符优先级.随着函数指针的出现,它会变得更加复杂. ..
发布时间:2022-01-31 09:28:31 其他开发

C 错误:int 之前的预期表达式

当我尝试以下代码时,我得到了提到的错误. if(a==1)整数 b =10; 但以下在语法上是正确的 if(a==1){诠释 b = 10;} 这是为什么? 解决方案 这其实是一个相当有趣的问题.它并不像最初看起来那么简单.作为参考,我将以 N1570 我猜这个问题的反直觉部分是:如果这是正确的 C: if (a == 1) {诠释 b = 10;} 那么为什么这不是正确 ..

Java switch:变量声明和范围

Java 编译器如何处理下面的 switch 块?'b' 变量的作用域是什么? 请注意,“b"变量仅在 switch 语句的第一个分支中声明.尝试在第二个分支中声明它也会导致“重复的局部变量"编译错误. int a = 3;开关(一){案例0:诠释 b = 1;System.out.println("案例 0: b = " + b);休息;情况1://以下行无法编译:b 可能尚未初始化/ ..

为什么新变量的初始化本身是有效的?

考虑一些代码: #include 主函数(){使用 std::cout;诠释一个= 3;cout 我希望它打印出来 a=3新 a = 3改变 a = 5旧 a = 3 但实际上我得到的似乎是第二行中的 new a = 0 .我认为它会像类的构造函数中的初始化列表一样工作,可以像这样写 C::C(int a) : a(a) {} 但由于某种原因,情况有所不同.首先, ..

“var FOO = FOO || 是什么?{}"(为该变量分配一个变量或一个空对象)在Javascript中是什么意思?

查看在线源代码,我在几个源文件的顶部看到了这个. var FOO = FOO ||{};FOO.Bar = ...; 但我不知道 || 是什么{} 可以. 我知道 {} 等于 new Object() 并且我认为 || 类似于“如果它已经存在使用它的值,否则使用新对象. 为什么我会在源文件的顶部看到这个? 解决方案 你对意图的猜测||{} 非常接近. 在文件顶部看到的 ..

变量声明导致分段错误

我不明白我的程序中出现分段错误错误的原因.代码可在这里 获得 在第 29 行,我声明了一个 PclImage 变量,用 typedef 定义,就像一个结构数组.PclImage 类型的定义如下(来自src/libMyKinect.h 文件): typedef 结构 {诠释有效;浮动 x;浮动y;浮动z;无符号字符蓝色;无符号字符绿色;无符号字符红色;} Point3d;typedef Poi ..
发布时间:2022-01-12 15:45:47 其他开发

Java 开关:变量声明和作用域

Java 编译器如何处理以下开关块?'b' 变量的作用域是什么? 请注意,'b' 变量仅在 switch 语句的第一个分支中声明.尝试在第二个分支中声明它也会导致“重复局部变量"编译错误. int a = 3;开关(一){案例0:int b = 1;System.out.println("case 0: b = " + b);休息;情况1://以下行不会编译:b 可能尚未初始化//Sys ..

while 循环中的变量声明 C/C++

根据我的说法,while 循环应该是无限的,但它只运行三次 main(){int i=3;当我 - ){国际我= 100;一世 - ;printf("%d..",i);}} 它输出99..99..99 但据我说它应该无限次运行,因为每次控制进入 while 循环时,它的值都是 100.所以它永远不会达到零.只是为了试验,我在 while 循环中用 i=100; 替换了 int i=10 ..
发布时间:2021-12-26 18:12:19 其他开发

声明和未声明变量的影响

JavaScript 声明变量和未声明变量的主要区别是什么,因为删除运算符对声明的变量不起作用? var y = 43;//声明一个新变量x = 42;删除 x;//返回true(x是全局对象的一个​​属性,可以删除)删除y;//返回 false(删除不影响变量名) 为什么会这样?全局声明的变量也是window对象的属性,为什么不能删除呢? 解决方案 已声明和未声明的全局变量 ..

C++,'if' 表达式中的变量声明

这是怎么回事? if(int a = Func1()){//工作.}if((int a = Func1())){//编译失败.}if((int a = Func1())&&(int b = Func2()))){//用 a 和 b 做一些事情.//这就是我真正希望能够做到的.} 2003 标准中的第 6.4.3 节解释了在选择语句条件中声明的变量如何具有扩展到由条件控制的子语句末尾的范围.但我 ..
发布时间:2021-12-12 13:09:51 C/C++开发

Golang 混合赋值和声明

我开始使用 go 工作了几个星期,并且(再一次)我偶然发现了一些对我来说似乎很奇怪的东西: //不工作:= 1{a, b := 2, 3}//作品:= 1a, b := 2, 3 游乐场 我想同时分配两个变量.一个已经声明,在一个上级范围内,另一个没有声明. 它不起作用:编译器试图重新声明前一个变量.但是,如果这个变量在同一个作用域中声明,它就可以正常工作. 这是为什么? ..
发布时间:2021-12-11 23:11:05 其他开发

有没有办法在 for 循环初始值设定项中定义两种不同类型的变量?

您可以在 for 循环中定义 2 个相同类型的变量: int main() {for (int i = 0, j = 0; i 但是定义不同类型的变量是非法的: int main() {for (int i = 0, float j = 0.0; i 有没有办法做到这一点?(我不需要在循环内使用 i,只需使用 j.) 如果您有完全被黑和晦涩的解决方案,那对我来说没问题. 在 ..
发布时间:2021-12-11 13:08:23 C/C++开发

我可以在 for 循环的初始化中声明不同类型的变量吗?

为什么这段 C++ 代码在 VS2010 下无法编译: for ( int a = 0, short b = 0; a 虽然这个是: short b = 0;for ( int a = 0; a 是否禁止在for循环初始化器中声明两个不同类型的变量?如果是这样,您如何解决它? 解决方案 是的,这是被禁止的.就像否则你不能在一个声明语句中声明不同类型的变量一样(编辑:以@MrLi ..
发布时间:2021-12-11 12:30:19 C/C++开发

在循环中声明变量是否有任何开销?(C++)

我只是想知道如果你做这样的事情是否会降低速度或效率: int i = 0;while(i 声明 int var 一百次.在我看来好像会有,但我不确定.这样做会更实用/更快吗: int i = 0;内部变量;while(i 或者它们在速度和效率方面是否相同? 解决方案 局部变量的栈空间通常在函数作用域内分配.所以循环内部不会发生堆栈指针调整,只是将 4 分配给 var.因此,这两 ..
发布时间:2021-12-08 23:30:58 C/C++开发

在循环内声明变量,好的做法还是坏的做法?

问题 1:在循环中声明变量是好的做法还是坏的做法? 我已经阅读了其他线程关于是否存在性能问题(大多数人说没有),并且您应该始终将变量声明为靠近它们将要使用的位置.我想知道的是这是否应该避免,或者它是否真的是首选. 示例: for(int counter = 0; counter 问题 2:大多数编译器是否意识到该变量已经被声明而只是跳过该部分,还是实际上每次都在内存中为其创建一个 ..
发布时间:2021-12-08 23:27:40 C/C++开发

何时在 C++ 中使用 extern

我正在阅读“Think in C++",它刚刚引入了 extern 声明.例如: extern int x;外部浮动 y; 我想我明白意思(没有定义的声明),但我想知道它什么时候证明有用. 谁能举个例子? 解决方案 这在您拥有全局变量时很有用.你在头文件中声明全局变量的存在,这样每个包含头文件的源文件都知道它,但你只需要“定义"它在您的源文件之一中出现一次. 澄清一下,使用 ..
发布时间:2021-12-01 15:16:44 C/C++开发

带和不带指针声明符的 C++11 自动声明

bar1 和 bar2 的类型有什么区别? int foo = 10;auto bar1 = &foo;自动 *bar2 = &foo; 如果 bar1 和 bar2 都是 int*,写指针声明符 (*>) 在 bar2 声明中? 解决方案 声明完全等效.auto 的工作方式(几乎)与 模板类型推导 相同.显式放置星号会使代码更易于阅读,并使程序员意识到 bar2 是一个指针. ..
发布时间:2021-11-30 18:22:01 C/C++开发

如果我将变量重新定义为auto,并且推导出的类型相同,它是否格式正确?

看看这个片段: int a;外部国际b;汽车 b = a; 它是否格式良好?Clang 成功编译了它,但 GCC 和 MSVC 没有. (当我回答如何声明和定义具有推导类型的静态成员?) 解决方案 Tl;DR; clang 是正确的,逻辑是 [dcl.spec.auto] 允许这样做,并限制推导出的返回类型 [dcl.spec.auto]p11 已添加,否则没有限制,因此这 ..
发布时间:2021-11-30 18:16:50 C/C++开发

C++11 - 将非静态数据成员声明为“自动"

如果非静态数据成员在声明中初始化,C++11 是否允许将非静态数据成员声明为“自动"?例如: struct S{自动 x = 5;//代替'int x = 5;',这是绝对允许的}; GCC 4.7 拒绝上述代码,但它接受 int x = 5;. 假设这不是编译器错误而是标准确实不允许这样做,为什么不呢?它与声明局部变量 auto 一样有用. 解决方案 禁止非静态成员的规则在7. ..
发布时间:2021-11-30 18:11:35 C/C++开发