作业帮 > 综合 > 作业

请教一道C语言概念题 请详解

来源:学生作业帮 编辑:灵鹊做题网作业帮 分类:综合作业 时间:2024/04/20 17:13:09
请教一道C语言概念题 请详解
.若有说明:long *p,a;则不能通过scanf语句正确给输入项读入数据的程序段是
A) *p=&a; scanf("%ld",p);
B) p=(long *)malloc(8); scanf("%ld",p);
C) scanf("%ld",p=&a);
D) scanf("%ld",&a);
请教一道C语言概念题 请详解
答案应该选A,应为*p应该指向long型的变量,而&a是一个变量的地址,所以错了,如果将式子改为p=&a就对了,
再问: B是怎么回事,什么意思 还有像C中scanf中p=&a这样可以吗?
再答: B是指分配了8个字节的内存单元用于存放long型的变量,long型的变量占4个字节,但是这里分配8个字节也没有什么问题,可以存放两个long型的变量,其中后面的式子中表示的输入的数据放在第一个存储单元中,其中C中的也是对的,我试过,希望对你有帮助!