设p,q是指针,若p=q,则*p=*q,这种说法对么?为什么?
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/08/24 16:37:26
设p,q是指针,若p=q,则*p=*q,这种说法对么?为什么?
按4楼所说,p与q指向同一地址的话,那么那个地址里所存储的数据应该是一样的呀
按4楼所说,p与q指向同一地址的话,那么那个地址里所存储的数据应该是一样的呀
指针只是指向数据的首地址,比如刚才说的a,在内存中的存储状况可能是(16进制表示,32位地址):
(首地址)
|
00 01 00 00
如果是int型指针,则所指向的数据为4个字节(从首地址开始数4个字节),则值为0x00000100(内存中是倒着存储的,表示时要正过来),也就是256
如果是char型指针,则所指向的数据为1个字节,则值为0x00,也就是0
即使p与q相等,也不代表*p与*q相等.
关键就在于p与q的类型不一定相同!
比如:
int a = 256;
int* p = &a;
char* q = (char*)&a;
此时p与q指向同一个地址,即p的值与q的值相等
但*p为值为256,而*q的值为0,显然不相等.
(首地址)
|
00 01 00 00
如果是int型指针,则所指向的数据为4个字节(从首地址开始数4个字节),则值为0x00000100(内存中是倒着存储的,表示时要正过来),也就是256
如果是char型指针,则所指向的数据为1个字节,则值为0x00,也就是0
即使p与q相等,也不代表*p与*q相等.
关键就在于p与q的类型不一定相同!
比如:
int a = 256;
int* p = &a;
char* q = (char*)&a;
此时p与q指向同一个地址,即p的值与q的值相等
但*p为值为256,而*q的值为0,显然不相等.
设p,q是指针,若p=q,则*p=*q,这种说法对么?为什么?
设p、q是两个数,规定p△q=4*q-(p+q)/2
设P、Q是两个非空集合,定义P-Q={x|x∈P,且x不属于Q},求P-(P-Q),并猜测P-(P-Q)与Q-(Q-P)
指针中p!=q是什么意思
定义p和q是两个指针变量,且*p=22,*q=44.p指向存储单元a[2].q指向存储单元a[3].若k=q-p,则k等
设P,Q是两个非空集合,定义P×Q={(a,b)|a∈P,b∈Q}.若P={3,4,5},Q={4,5,6,7},则P×
设P、Q是两个非空集合,定义P*Q={(a,b)|a∈P,b∈Q}.若P={0,1,2},Q={1,2,3,4},则P*
设p,q满足log9(p)=log12(q)=log16(p+q),求q/p的值
设P、Q是两个非空集合,定义P×Q={(a,b)|a∈P,b∈Q}若P={3,4,5}Q={4,5,6,7}问P×Q
设P,Q是两个非空实数集合,定义集合M=P+Q={a+b|a∈P,b∈Q},若P={0,2,5},Q={1,2,6},则
设P、Q为两个非空实数集,定义集合P+Q={a+b|a∈P,b∈Q}.若P={0,2,5},Q={1,2,6},则P+Q
若指针q = p;p=p = p->next;问q的地址会随着p的改变而改变吗?