https://zhidao.baidu.com/question/1639291445177825820.html
感叹号是运算符,逻辑非。比如说“!真”也就是假的意思。
两个!是为了把非0值转换成1,而0值还是0。
因为C语言中,所以非0值都表示真。所以!非0值 = 0,而!0 = 1。
所以!!非0值 = 1,而!!0 = 0。
比如:i=5 !i=0 !!i=1
初识两个叹号,是在ffmpeg的代码里面。
int avcodec_is_open(AVCodecContext *s)
{
return !!s->internal;
}
如此,便把指针是否为空以0和1的形式表示了。
向ffmpeg的大神表示膜拜。