我爱占星网 我爱占星网
首页
编程
java
php
前端
首页 编程 java php 前端

//为什输出是D,是s【++1】不是b吗,带入那个宏里面去得到的结果不是B吗,求解答

#include
#include
#define TOUPPER(c) ('a'<=(c)&&(c)<='z'?(c)-'a'+'A':(c))

int main(){
char s[10];
int i;
strcpy(s, "abcd");
i = 0;

putchar(TOUPPER(s[++i]));
    return 0;

}

你输出i会发现,它的值已经加到3了

宏替换:putchar(TOUPPER(s[++i]));
TOUPPER(s[++i]) 宏替换为:('a'<=(s[++i])&&(s[++i])<='z'?(s[++i])-'a'+'A':(s[++i]))

近期文章

  • 下面的红色提示是哪里有错误吗
  • PHP URL重定向 - 我这样做了吗?
  • PS信息面板里的颜色数值显示不正确是什么情况
  • ps信息栏的颜色显示出问题
  • c#窗体应用与另一台电脑通讯
  • 一年级数学教学辅助系统,怎么想
  • 如何判断定义前要不要加数据类型
  • 把表单提交到servlet程序,点击提交后为什么变成了下载?
  • CakePHP - 无法在视图中获取会话变量
  • cmip数据ncread报错
  • 不懂onload事件处理多个事件的代码解释一下
  • 带有级数上下标的方程求解。我不会输入这个方程 这个代码应该怎么样写
  • 要打出五个学生的总成绩和平均分,但是一直打出来是50
  • store 里面的主模块没有命名空间,子模块有命名空间怎么同时引用呢?
  • Taro reactHooks TS
  • 这个运行语句是什么意思?(语言-c++)
  • CodeIgniter从控制器返回数据
  • Python程序报错
  • 怎么通过matlab来调整图片饱和度呀
  • 关于vector的报错

Copyright ©2022 我爱占星 All Rights Reserved.

浙ICP备2022030071号-1

部分图文来自网络,如有侵犯您的版权,请告诉我们删除

友情链接:代码精华