首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

关于在linux平台上打印NULL出现段异常的有关问题

2012-12-14 
关于在linux平台下打印NULL出现段错误的问题为什么printf(%s,0)就能打印出NULL,但printf(%s,NULL)却出

关于在linux平台下打印NULL出现段错误的问题
为什么printf("%s",0)就能打印出NULL,但printf("%s",NULL)却出现段错误,NULL不是0的宏定义吗
[最优解释]


#include <stdlib.h>
#include <stdio.h>

int main(int argc, char* argv[])
{
printf("%s", (char*)NULL);

return 0;
}

//(null)


[其他解释]
#include <stdio.h>

int main(void)
{
        printf("%s\n", NULL);
        printf("%s\n", 0);
        return 0;
}
用gcc -E test.c查看,发现两行代码不一样:
int main(void)
{
 printf("%s\n", ((void *)0));
 printf("%s\n", 0);
 return 0;
}
我觉得还要再看printf的实现。
[其他解释]
你的是什么平台啊,试了一下,都是一样的null。
[其他解释]
做开发不必过分关注这类问题的

热点排行