c - 为什么 *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++ 应该增加指针地址。但是两者都在增加指针,为什么?
解决方案
这是由于运算符优先级 ++ 的优先级高于 *
推荐阅读
- git - 如何在不依赖 CI 内部版本号的情况下生成发布版本号?
- javascript - WebdriverIO Window.datalayer 显示窗口未定义我该如何解决这个问题
- spring - XMLSchema 命名空间被忽略(JAXB 解组失败)
- angular - 量角器中预期条件的更好的失败/错误消息
- nginx - Kubernetes Nginx Ingress 通过 https 进行 pod 通信
- oracle - 在 Oracle APEX 中使用报告在 Oracle APEX 中自动发送邮件
- laravel - Laravel 8:创建和使用新权限的问题
- python - 根据起始字母从数据框中的列中提取值
- python - 求。python努力在int末尾删除.0
- nginx - Nginx 和代理子域的相对路径