第1个回答 2014-12-16
你用 百分号+s 是要打印一个字符串对不对,可是你在 printf("%s\n"); 里面写入你要打印的字符串了吗? 因此该函数在堆栈里没有找到你要打印的字符串指针 ,于是就打印了 null ,表示出现了一个错误
第2个回答 2014-12-16
printf("%s\n"); 既然用了格式控制符 %s 后面就必须跟上char* 参数
比如
printf("%s\n", “123123123”);
要么就把%s去掉 改成printf("\n");
printf 后面参数的个数 和前面的%个数一定要一样,如果不一样,特别是参数小于%的个数,那么久会出现<null> 表示格式化参数的时候,找不到要格式化的参数。本回答被网友采纳
第3个回答 2019-05-25
NULL是C语言中的宏定义,其值为0.
也就是说int*
num
=
NULL和int*
num
=
0;
二者的含义是相同的。
其目的在于,0这个地址在操作系统中是只读的,当你尝试访问的时候会阻止你
但是有些地址不是只读的,如果一个指针指向了这个地址,你又在不经意间修改了它
可能会导致一些重要的文件被修改,所以指针初始化成NULL是有必要的
但是话说回来,现在的操作系统都有段保护机制,即使你不初始化成NULL,也不会让你随便访问其他地址的,初始化成NULL可以让你在调试的时候,清晰的看出来你是否曾经对它赋值
第4个回答 推荐于2017-10-07
printf("%s\n");
没输出,改成
printf("%s\n",a);
还有
printf("%c%c%c\n",a[0],a[1]),a[2];
改成
printf("%c%c%c\n",a[0],a[1],a[2]);本回答被提问者采纳