带有和没有括号的C 代码的区别是什么?
What is the difference for this C++ code with and without the parentheses?
在以下代码中,括号的目的是什么?如果括号不存在,会发生什么?抱歉,我是C 的新手。
void foo(int * xPtr) {
(*xPtr)++;
}
带有括号,您可以递增指针引用的对象,而没有它们,您将递增指针到下一个内存地址,然后将其删除(在这种情况下,这无用)。
如果不存在括号,那么您基本上正在修改xPtr
中存储的存储地址,然后将指针删除。很明显,这不是所需的。
说我们希望存储在内存位置1000
的值,但是
*xPtr++;
导致内存位置增加4,然后访问内存位置的值1004
,假设机器上的整数大小为4 bytes
。
(*xPtr)++
将增加 xPtr
的点。
PostFix ++
的优先级高于一元*
;如果没有括号,代码将被解析为*(xPtr++)
-您正在递增xPtr
,而不是xPtr
指向。
相关文章:
- 我是C++编程的新手,这些代码之间有什么区别,我应该使用哪一个
- 以下两个代码段有什么区别?
- 两个代码段之间有什么区别?
- 当我使用按引用返回时,我不知道这些代码之间的区别
- 给定的两个代码有什么区别.一个在 ideone 上运行时超出时间限制,另一个工作正常
- 为不同目标MCU开发C/C++代码的区别
- 这两行代码有什么区别
- (C++)比较两段代码,一段有效,一段无效,无法找出区别
- C++ 构造函数和初始值设定项行为。这 5 个代码有什么区别?
- 这些代码之间的区别在哪里?输出不应该是一样的吗?
- 框架代码和普通代码之间的区别
- 有人可以解释一下这个 c++ 代码的区别吗?
- 这两个版本的代码有什么区别
- 这两个指针代码有什么区别
- 告诉我两者之间的区别.它是在树上插入的C 代码
- 当我<limits>在 c++ 代码中包含或<limit.h>时有什么区别
- 这些C++代码之间有什么区别
- 无法理解工作代码和损坏代码之间的区别
- 以下C++代码中的 += 和常规总和有什么区别
- 以下代码段的区别