c – 返回指针的开头?
发布时间:2020-12-16 10:18:33 所属栏目:百科 来源:网络整理
导读:我知道你可以拿指针,如: 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 work txt = 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; 或无.你得到相同的指针.使用我描述的两种方法之一. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |