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

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条回答 默认 最新

  • 北斗猿 新星创作者: 人工智能技术领域 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日