#include <iostream>
#include <cstring>
using namespace std;
int main() {
char *str = "hello";
while (*str) {
cout << *str;
*str++;
}
return 0;
}
和
#include <iostream>
#include <cstring>
using namespace std;
int main() {
char *str = "hello";
while (*str) {
cout << *str;
str++;
}
return 0;
}
两个输出
hello
为什么在str++
改变输出之前不添加或删除deference运算符?
答案 0 :(得分:6)
Postfix ++
的优先级高于去重新引用运算符*
,所以
*x++;
与
相同*(x++);
与
完全相同x++;
答案 1 :(得分:5)
*str++
表示*(str++)
。
由于您不使用该表达式的值,*
无效。