首页 > 其他 > 详细

《C专家编程》---不知道的那些事

时间:2018-11-03 16:48:09      阅读:112      评论:0      收藏:0      [点我收藏+]

1.char *b = const char *a 会报警告,而const char* a = char *b不会,要使这种赋值形式合法,必须满足下列条件之一:

  1)两个操作数都是指向有限定符或无限定符的相容类型的指针

  2)左边指针指向的类型必须具有右边指针所指向类型的全部限定符

警告内容:initialization discards ‘const’ qualifier from pointer target type [enabled by default]

(C专家编程:1.9节)

2.对有符号数转换为无符号数的例子和解决办法

来看一段代码:

int main()
{
    int d = -1;
    unsigned int a = 3;
    if(d < a)
    {
        printf("d is low\n");
    }
}

这段代码在运行后毫无反应,说明程序没有进入if判断语句,即if判断的返回值总是0

原因显而易见,因为d被转换为无符号整数,会变得很大,这样永远都大于a,

解决的办法是

if(d < (int a))

 (C编程专家:1.10节)

《C专家编程》---不知道的那些事

原文:https://www.cnblogs.com/zzdbullet/p/9901092.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!