问题标签 [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.

0 投票
2 回答
2399 浏览

c++ - C++ 字符串类可以进行指针运算吗?

在 CI 中进行了一些编程之后,决定直接进入 C++。起初,我对字符串类的存在感到满意,并且能够将字符串视为整个单元而不是字符数组。但我很快发现,C 风格的字符串的优点是可以让程序逐个字符地遍历它,使用指针算术,并执行所需的逻辑操作。

我现在发现自己处于需要这样做的情况,但编译器告诉我它无法从类型字符串转换为 C 样式字符串。所以我想知道,有没有一种方法可以使用指针算术来引用单个字符或将参数作为第一个字符的地址传递给函数,同时仍然使用字符串类而无需创建字符数组或者我只是想有我的蛋糕,也吃吗?

0 投票
3 回答
370 浏览

c++ - 指针编译器问题

我已经 3 年多没有使用过指针了,我对这个话题非常生疏。编译以下代码时,我收到了大量错误。错误如下:

链表.h:

链表:

线性节点.h:

线性节点:

0 投票
4 回答
416 浏览

c - C中的数组算术问题

我在使用 cc 编译的长文件中有一个 C 代码。但是当我尝试在 gcc 上编译时,它给出了错误。我在小程序中使用了那个特定的代码,并尝试在 cc 上编译,但它在那里失败了。

这里是来源:

此行导致问题: FileName[strstr(FileName,test) - FileName] = 0;

CC上的错误是:

在 gcc 上是:

但是当我在 CC 上编译原始文件时,它会编译并给出警告。像这样:

你能帮忙解释一下为什么这里会给出警告“不正确的指针减法”和示例程序显示错误吗?

0 投票
4 回答
1831 浏览

c - C初学者问题:指针算术>完成后清理

我正在慢慢掌握指针的窍门。但是我还有一些问题。

使用指针算术时是否可能导致内存泄漏,因为您正在移动指针指向的实际位置?

我的意思是,如果说我向上计数以逐个字符地复制字符串,我是否需要倒数以便 C“知道”指针曾经指向的位置?

谢谢弗兰克

0 投票
5 回答
358 浏览

c++ - 指针算术?这三种表达方式有什么区别?

所以我试图理解两件事:

  1. 这三种表达方式有什么区别?
  2. 第一个表达式(A)的等价物是什么?

这是代码(固定):

0 投票
5 回答
847 浏览

c - 指针运算后释放指针

我的问题很简单。假设我们有:

当我们释放指针时会发生什么?是未定义的操作吗?它是释放所有 SIZE 缓冲区还是仅释放剩余的 SIZE/2?提前感谢您为我消除歧义。

0 投票
1 回答
325 浏览

c++ - 帮助我理解这个 URL 解码器:

在自己玩弄了 URL 解码之后,我设法想出了一些可行的想法——但它们效率不高。由于 URL 解码是我的程序中可能出现严重瓶颈的地方,我决定上网寻找更有效的解决方案。我遇到了这篇 codeguru 文章:

http://www.codeguru.com/cpp/cpp/string/conversions/article.php/c12759

现在,我不反对使用别人的代码,尤其是如果它比我的更好的话。但是,我想在我做之前知道它是如何工作的。使用您不完全理解的代码毫无意义。

这是我卡住的地方,我了解解码功能中正在进行的大部分指针工作。我迷路的地方是 HEX2DEC 数组和相关的转换算法。它没有在网站上提供,而是在示例下载中提供,因此为了您的方便,我将其与解码功能一起发布在这里:

http://pastebin.com/AVDnr6cK

这个函数究竟是如何使用这个数组将十六进制转换为十进制,然后将十进制转换为它的 ASCII 等价物?

再次感谢你的帮助。

0 投票
1 回答
138 浏览

c++ - 你能帮忙解释一下这段代码吗?

我有这个函数,我正在尝试转换,但我无法理解代码的某些部分发生了什么。谁能帮我解释一下代码。我只想知道他们对指针做了什么。代码中有一些空白注释,他们用指针做地狱,我只是不明白。

任何帮助表示赞赏。

0 投票
5 回答
619 浏览

c - C指针算术

我在这里尝试完成的是获取一个 cString 并将某个字符替换为另一个我通过使用 strchr() 函数找到的位置。

我想不通的是如何替换字符我所有的尝试(下面注释掉)都产生未经编辑的字符串或使程序崩溃。我相信我正在朝着正确的方向替换字符(取 char *c 的起始地址并添加 n(我要替换的字符向前的字节数),然后写入该新地址。),但是我似乎无法让它正常运行。

任何帮助表示赞赏。

0 投票
3 回答
809 浏览

c - C中的二维指针算术

我试图在 C 中交换二维数组中的 2 个元素,但没有成功。

到目前为止,感谢您的回答,但我已经编辑了这段代码,以便更清楚地了解我在做什么。

不用说这是行不通的。我已经搜索了示例,但似乎没有任何效果。建议 n00b 将不胜感激。