scanf函数问题
做了几道笔试题,百思不得其解,特地请教高手们,请多多指点,谢谢啦!1、
#include <stdio.h>
void main()
{
int m=0,n=0;char c='a';
scanf("%d%c%d",&m,&c,&n);
printf("%d,%c,%d\n",m,c,n);
}
输入10A10回车后,结果是10,A,10 我觉得应该是10,a,10呀,想不通。
还有,如果我输入10 A 10,结果为10, ,0 更头大><
2、
d="\0127";我认为这条赋值语句不对。但答案说是对的。但转义字符8进制数的格式为\ddd,意为1至3位8进制数所代表的字符,但此\后有4位,我哪里分析错了呢?
3、如果已对指针变量p赋值NULL,即p=NUll;那么是否不能对p赋别的值?NULL是整数0,也就是使p指向地址为0的单元,那么*p=0;这条语句哪里错了呢?
4、#include <stdio.h>
void main()
{
int p,a=5;
if(p=a!=0)
printf("%d\n",p);
else
printf("%d\n",p+2);
}
我分析p值为5,但一上机运行,结果为1,汗,不知道为什么。
根据运算优先级,在(p=a!=0)中先判断a!=0,然后再将结果赋值给p,a=5,所以p=5,哪里分析错了呢?请指点,万分谢谢!