如何解决为什么 *c++ 增加指针值而不是第一个 Char 的 ascii?
#include <stdio.h>
int main() {
char *c = "test";
while (*c != '\0') {
printf("%c",*c);
*c++; // or c++ both produced same result. ie test
}
return 0;
}
因为 *c++ 应该增加值,而 c++ 应该增加指针地址。但是两者都是递增指针为什么?
解决方法
这是因为运算符优先级 ++ 的优先级高于 *
,但两者都增加指针为什么?
那是因为所谓的运算符优先级。看看here
如果你想增加价值,那么你应该这样做
strip
作为一点建议,您的代码更像是“C”而不是“C++”。尽可能避免使用原始指针并使用 iostream 库而不是 (*c)++ //increment the value at address c
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。