码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2018-11-03 17:33:37      阅读:133      评论:0      收藏:0      [点我收藏+]

标签:说明   default   get   har   ali   有符号   int   c编程   判断   

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专家编程》---不知道的那些事

标签:说明   default   get   har   ali   有符号   int   c编程   判断   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!