C语言菜鸟问题(37)
来源:百度知道 编辑:UC知道 时间:2024/06/21 00:43:31
A i=*p;
B p*=*%j;
C i=&j;
D i=**p
请帮我讲解一下 我要的不是正确答案。。。在线等 谢谢啦
修改一下 题目中的类型定义写错了 是:int i,j=2 不是k
都是错的,都编译过不了,来看看3楼说的这个<p=&j还差不多>
意思只是把j的地址赋给了p,现在的p已经不值向了i的地址
根本都没实现i=j;
如果是这样还可以:*p=j;<把j的值装入p值向的内存地址,这样i就=2了>
这样也可以: *p=*&j;
还有2楼说的是什么东西呀?
*p=&j<后面是地址,前面是值>如果想赋值确实可以这样*p=(int)&j;确实是相当与把j的地址值放到了
p指向的空间里面了
如果p的地址为0x1234 j的地址为0x2220
那么*p=16进制的0x2220<他只是一个整型数据>,那么**p根本就没意义
如果要达到你说的哪个效果,应该是这样的吧
*p=(int)&j;
*p=*(int *)(*p);这样也可以实现i=j;
在VC6.0下试的,如果不认同就当我瞎说
j是什么类型的?
题目莫名其妙,j是什么东西,题目是不是有问题?
*p=&i是*p=&j吧,这样就是选D,因为*p=&j相当于*p赋值为j的地址,i再赋给**p,也就是赋值给j了!具体自己再对照一下题目!
p=&j还差不多
a.i=*p,p=&j,*p=j,对的
b.什么东西啊...
c.i=&j,这个意思是i=存储j的内存地址,错的
d.i=**p,(因为p=&j,所以*p=j,那么**p=*j),错的
说一下:
int *p=&i;(在定义时付值)相当于,
int *p;
p=&i;
不是什么*p=&i;
//-------------------------------------------
都是错的,都编译过不了,来看看3楼说的这个<p=&j还差不多>
意思只是把j的地址赋给了p,现在的p已经不值向了i的地址
//-------------------------------