若有以下定义和赋值double *q,a=5.5; int *p,i=1; double *q,a=5.5;int *p,i=1; p=&i; q=&a; 以下对赋值语

2024-12-29 06:59:30
推荐回答(2个)
回答1:

A.*p=*q ;改变i中的值
是正确的,不过要对浮点型进行截取,i=5

B.p=oxffd0;将改变p的值,使p指向地址为ffd0的存储单元。
语法可以,因为p是指针类型,就是整型数值,用十六进制赋值是对的,但是这样赋值是危险的,
那段地址很可能是不确定值的地址,如果对p进行取值操作,将会出现非法操作

C.*q=*p;等同于a=i;
是正确的,a=1.000000

D.*p=*q;是取q所指变量的值放在p所指的存储单元
是错误的,应该是 复制q所指变量的值到p所指的存储单元
赋值语句是将右值信息复制给左值,不会改变右值信息

回答2:

很不错