问题标签 [pointer-arithmetic]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - 打印行为
拿int ptr={10,20,30,40,50}
我理解
在这样的语句中,运算符的评估是从右到左的。因此,*ptr++
将++
首先进行评估,然后ptr
再进行评估*
所以为了确认相同的内容,我编写了一个程序
上述程序的输出与上述逻辑预期的运算符优先级不同。我得到的输出是
但我期待
那么运算符优先级没有从右到左发生吗?还是我的理解有问题?
更新
现在事情就是这样。即使我按照提到的方式放置这些括号以便执行 *(ptr++) 输出也不会改变这里是新代码
结果仍然与您提到的使用大括号相同。输出仍然是
所以即使在我使用了大括号 *(ptr++) 之后,操作 ++ 在当前行执行后仍然执行。那么大括号 () 不起作用吗?还是没有对后期增量的东西给予偏好?
c++ - 从媒体缓冲区读取 - 指针算术 C++ 语法
这很可能以前出现过,但以下代码取自我正在修改的 MSDN 示例。我想知道如何遍历包含位图数据的缓冲区的内容并打印出颜色。每个像素是 4 个字节的数据,所以我假设 RGB 值占这些字节中的 3 个,并且 A 可能是第 4 个。
所需的指针算术(理想情况下在循环内)的正确 C++ 语法是什么,它将在该迭代期间指向的值存储到我可以使用的局部变量中,例如。打印到控制台。
非常感谢
PS。这安全吗?或者有没有更安全的方法来读取 IMFMediaBuffer 的内容?我找不到替代方案。
这是代码:
c++ - C ++指针算术怪异
我发现了我的错误(几个小时后)并将其隔离在以下程序中。问题在于使用指向结构的指针时计算 pst2 变量值的方式。使用指向 char 的指针时,一切正常。为什么是这样?
(使用 gcc/g++ 版本:(Debian 4.4.5-8)4.4.5)
(对于那些想知道的人:我正在访问一个包含常规偏移量的数据分组的文件缓冲区。)
输出:
c++ - 带空终止符的指针数组交互
我只是在处理数组时尝试使用指针,我对 C++ 如何处理数组感到有些困惑。以下是我编写的相关代码:
首先,当我尝试使用 cout 编写“pszString”中的内容(没有取消引用)时,看到它给了我字符串,我有点惊讶。我只是假设这是因为我给了指针一个字符串而不是一个变量。
真正引起我注意的是,当我从行中删除星号时,cout << *pszString++;
它会打印“Randyandyndydyy”。我不确定它为什么要写入数组,然后再用少 1 个字母再次写入。我的理由是,在写入 char 字符串后,增量运算符立即将索引带到下一个字母,然后才能到达空终止符。我不明白为什么在第一次输出字符串后空终止符不会导致循环返回 false 否则。这是正确的推理吗?如果我得到数组和指针之间的这种关系,有人可以解释一下吗?
c - 为什么 i[arr] 在 C 中与更大数据类型的 arr[i] 一样好用?
众所周知,如果您像arr[i]
在 C 中那样访问数组的元素,您也可以像访问该元素一样i[arr]
,因为这些只是归结为*(arr + i)
并且加法是可交换的。我的问题是为什么这适用于大于char
, 因为sizeof(char)
是 1 的数据类型,对我来说这应该只将指针提前一个字符。
也许这个例子更清楚:
那么为什么向数组指针加一会提前呢sizeof( struct large )
?
c - c程序需要的解释
在我买的一本 c 书中,给出了一个锻炼计划
以下代码段的输出是什么?
我得到的答案是我(通过在 TC++ 中执行)
但我无法得到实际的机制。请解释一下它背后的实际机制。
c - 结构的指针算法
给定一个包含一个 double 和三个 int 变量(总共 4 个变量)的结构定义,如果 p 是指向该结构的指针,值为 0x1000,那么 p++ 有什么值?
这不是作业问题,所以不用担心。我只是想为考试做准备,我无法弄清楚这个练习问题。谢谢
这是在 C 中。是的,我想要 p 增加后的值。这是一台 32 位机器
pointers - 关于指针等指针的指针算术
是否明确定义在指向指针的指针上使用指针算术?例如
现在对 p2 执行算术是否是明确定义的行为?(例如 p2+1、p2+2 等)
c - 从内存缓冲区设置结构的 int
我有更多的化妆品问题:
我有一个内存流(void *),我在示例中用作“cur_ptr”。现在我想将第一个字节读入结构(“a_struct”)的 int (“版本”)。我的有效代码:
如果没有帮助指针 *version,我该如何编写它?
那个不行:
有任何想法吗?
谢谢
c - 多维数组中的 C 奇怪的数组语法
我知道这是真的:
多维数组的等价物是什么?以下是真的吗?