m0_62138486 2022-04-11 17:48 采纳率: 98.6%
浏览 475
已结题

typedef enum {false, true} bool;这是什么意思?typedef又代表什么?(s[i]!=s[l-1])自定义函数中为什么不写成(*s[i]!=*s[l-1])?

其实不太明白这个bool palindrome(char s)这里面s是什么意思 希望可以解答,问题有点多,辛苦辛苦,解决问题后肯定采纳的,感谢感谢

img

img

img

  • 写回答

1条回答 默认 最新

  • 卡尔曼的BD SLAMer 计算机视觉领域新星创作者 2022-04-11 18:46
    关注

    typedef 相当于一种重命名
    typedef int abc;
    当你写了这句话,你就可以把abc当int来用了;
    main()
    {
    abc x=1, y=2;
    printf("%d %d", x, y);
    }
    这个程序是对的,x和y的类型就是int,输出的结果是1 2
    而 typedef enum { FALSE , TRUE } bool ; 这句话就是告诉你bool类型的变量可以取的值就是两种
    FALSE(假)或TRUE(真),也就是>= <= ==这类运算符的运算结果
    然后如果把bool用在自定义函数里面
    bool f()
    {
    return TRUE; /* 等价于return 1; */
    }
    这个函数的返回值只能是TRUE或FALSE
    -----以下为2021-12-19编辑-----
    enum { FALSE, TRUE } 可以理解为你自己创建了一个新类型,这个类型的变量有两种取值,一个是FALSE,一个是TRUE。
    然后FALSE本身是可以在大括号里赋一个整型值的,比如enum { FALSE = 1, TRUE = 3 }。如果是这样赋值的话,那你新创建的类型就可以有两种取值,FALSE(对应整型的1), TRUE(对应整型的3)。
    然而你写的是enum { FALSE, TRUE } ,根据默认的规则,FALSE 会被赋值为0, TRUE被赋值为FALSE+1(在这里 TRUE 就是1)。
    现在你又写下了
    typedef enum { FALSE , TRUE } bool ;
    那么在这一句话中,你同时创造了一个新类型,同时给它取一个名字叫bool。
    那么你就可以这样创建一个变量
    bool a;
    a的类型名是bool
    你可以这样给它赋值 a = TRUE;
    同时 a 也等价于整型的 1。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 4月19日
  • 已采纳回答 4月11日
  • 创建了问题 4月11日

悬赏问题

  • ¥15 关于#java#的问题:找一份能快速看完mooc视频的代码
  • ¥15 这种微信登录授权 谁可以做啊
  • ¥15 请问我该如何添加自己的数据去运行蚁群算法代码
  • ¥20 用HslCommunication 连接欧姆龙 plc有时会连接失败。报异常为“未知错误”
  • ¥15 网络设备配置与管理这个该怎么弄
  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!