C语言!!的含义-创新互联

偶发现c代码中出现了 !!(condition) 的写法,逻辑上来说 !! 对原来的含义没有任何变换,那这种写法用意何在?

十余年的志丹网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。营销型网站的优势是能够根据用户设备显示端的尺寸不同,自动调整志丹建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联从事“志丹网站设计”,“志丹网站推广”以来,每个客户项目都认真落实执行。

个人猜想:这种写法主要是将,condition 为

true 的表达式结果置为1。因为condition结果 可为正、负数; 

false的表达式结果置为0(没有变化)。

这个中写法常见于 strcmp() 、memcmp() 类函数。 如:

#include#includeint main()
{
   char *p1 = "1";
   char *p2 = "9";
   char *p3 = "5";
   printf("p1-p2 :%d, %d\n", strcmp(p1,p2), !!strcmp(p1,p2));
   printf("p2-p3 :%d, %d\n", strcmp(p2,p3), !!strcmp(p2,p3));

   printf("p3-p3 :%d, %d\n", strcmp(p3,p3), !!strcmp(p3,p3));    // 无变化

   return 0;
}

运行结果:

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


本文题目:C语言!!的含义-创新互联
文章出自:http://ybzwz.com/article/dsihej.html