c – 返回指针的开头?

c – 返回指针的开头?,第1张

概述我知道你可以拿指针,如: someFunction(const char* &txt){ txt++; //Increment the pointer txt--; //Decrement the pointer} 我如何回到指针的开头? (不计算我的增量数量并减少该数量)我在想类似的事情: txt = &(*txt[0]); 但这似乎不起作用(将指针指定到其起始位置). 任何 我知道你可以拿指针,如:

someFunction(const char* &txt){    txt++; //Increment the pointer    txt--; //Decrement the pointer}

我如何回到指针的开头? (不计算我的增量数量并减少该数量)我在想类似的事情:

txt = &(*txt[0]);

但这似乎不起作用(将指针指定到其起始位置).

任何帮助将不胜感激

布雷特

解决方法 你不能.你必须保存它的原始位置:

const char *o = txt;// do worktxt = o;

或使用索引:

size_t i = 0;// instead of txt++ it's i++// and instead of *txt it's txt[i]i = 0;

你的尝试:

txt = &(*txt[0]);

如果你看一下是不正确的.首先,它需要txt [0](类型为char),然后尝试用*取消引用它,然后使用&运算符(理论上产生原始结果,虽然我不想过于考虑这是否适用于取消引用像char这样的算术类型),然后将(算术)结果分配给指针.就像你说的那样:

const char *txt = 'a';

这没有意义.你可能正在寻找的只是简单

txt = &txt[0];

乍一看,它可能看起来像设置txt指向txt的第一个元素,但请记住txt [0]只是*(txt 0)或* txt.并且& * txt简化为txt,因此您可以有效地执行:

txt = txt;

或无.你得到相同的指针.使用我描述的两种方法之一.

总结

以上是内存溢出为你收集整理的c – 返回指针的开头?全部内容,希望文章能够帮你解决c – 返回指针的开头?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/langs/1219152.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存