问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

C语言指针中的++p与++*p的区别

发布网友 发布时间:2022-05-12 00:44

我来回答

5个回答

热心网友 时间:2023-08-25 09:06

若p和q是申明为类型兼容的指针变量,且都正确赋有合法值且不为NULL,那么,*p=*q是把指针q指向的目标值赋给指针p指向的目标;p=q则是使指针p指向指针q指向的目标(最终是p和q指向了同一目标,这个目标就是q指向的目标)。在q==NULL时,*p=*q非法操作,p=q是合法操作(使p和q同为NULL)。综上,除q为无效(NULL)时不能取值操作外,正常情况下*p=*q操作的是指针指向的目标,p=q操作的是指针本身——这是二者的本质区别。以下代码可以验证:
#include "stdio.h"
int main(int argc,char *argv[]){
int *p,*q,a=334,b;
q=&a;
p=&b;
*p=*q;
printf("b = %d,\ta = %d\n",*p,*q);//b获得了a的值
p=q,b=123;
printf("*p = %d,\t*q = %d,\tb = %d\n",*p,*q,b);//p,q都指向了a,b值未变
q=NULL;
p=q;//NULL指针作右值是合法的
printf("p = %p,\tq = %p\n",p,q);
printf("%d\n",*p);//取NULL指针的值*p是非法的
return 0;
}
验证结果如下:

热心网友 时间:2023-08-25 09:07

需要说明的是
*p=&k;
这种赋值方式是错误的;
p为指针变量,它的作用是指向的是k在内存中的地址,而不能给他本身赋值;
若需k的地址,则可直接用p=&k;printf("%d",p);
你的问题补充令人费解,不知你说的pk,pm,为何物............

热心网友 时间:2023-08-25 09:07

举个例子:
int a[5]={1,2,3,4,5};
int *p;
p=&a[2];
++*p;//等同于++a[2],使p指向的值加1
++p;//等同于p=a[2+1],使p指向目标数组中的下一个元素a[3]

热心网友 时间:2023-08-25 09:08

*p=*q,意思是说,将q指针指向地址的值传给p指针指向的地址,此时p和q是指向不同地址的(当然是在原先p和q就不同的情况下)而p=q呢,则是说将q指针指向p指针指向的地址,此时pq指向同一位置,共享同一段内存

热心网友 时间:2023-08-25 09:08

假设p是一个指针变量。那么++p是将指针变量的值加1,也就是指向下一个指向同类型变量的值。比如:int a[10],*p=a;那么,初始时p指向a[0],++p后,p指向了a[1]。
而++*p,是将p指向的值加1。比如*p=2,那么++*p就是把*p变为3。
继续,*(++p)是先把p指向下一个元素,在把p指向的值取出来。如p=&a[1],那么*(++p)就是a[3]。追问如果题中没有a[10] 原来 int a=1;p=&a;p=p+1 那么现在的p值是多少呢

追答那么p就指向了a的下一个整形单元。这是非常危险的操作:因为你不知道a之后的整形空间是什么量!

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
13岁一直到18岁晚上经常熬夜会有什么影响 具象表现素描内容简介 ...| 从14世纪文艺复兴到20世纪具象表现绘画 · 168幅画 · 图解西方... 【漫画赏析】比喻具象化——《孤高之人》手法分析 具象美术作品有哪些 具象艺术艺术家介绍 话说 曾经有个演唱会 是初音未来演唱会 39祭 谁知道微信聊天记录删掉了,还能恢复过来吗?有什么软件可以恢复吗?不... 六爻。测缘分。测婚姻 礼仪起源于祭祀的证据是什么? C语言里p++和(*p)++有区别吗 c语言指针问题,输入函数中*p和p的区别 C语言小问题~已经定义int *p 那后面程序中分别提到p和*p有何区别? c语言 *p++与(*p)++、*(p++)三者异同? C语言指针*p与p有什么区别?printf输出表列要哪个?为什么? C语言中的指针*p和p有什么区别? C语言 *p和p有什么区别啊?为什么最后输出*p=20啊? 月什么软件可以看好的书籍 除了宜搜小说,还有哪些软件可以看本地书籍 什么软件可以看一些书籍的? 像古代书籍格式的看书软件 有什么软件可以看各类书籍! 什么软件可以听禁书 哪个软件能找到古书? 岗位外包与员工派遣有什么区别? 液压缸双向闭锁的原理 请问:签着外包合同,但是直接干着劳务派遣的事。求不用走人方式解决答案。 和公司签订劳动合同,社保是第三方代缴,公司存在什么法律风险,如何规避 企业外包之后企业也丧失了部分控制权由此带来了很大的风险如何控制外包风险_百度问一问 劳务外包人员可否担任工作负责人 c语言中*++p与++*p有什么区别 资产负债表中的存货栏,应包括哪些会计科目 肉夹馍店怎么起名 肉夹馍店名字大全 自己开个肉夹馍店,起什么名字好呢?~老潼关的馍 外卖胡辣汤肉夹馍应该取什么名? 肉夹馍起名 肉夹馍面馆起名字大全 自己开个肉夹馍店,起什么名字好呢?~老潼关馍 我想给我的小吃店起个名字,把我朋友肖珊名字用上。主要经验酸辣粉米线肉夹膜还有奶茶和一些小吃 在微信上卖自己做的肉夹馍小吃该怎么起名? 明知相思苦,+偏要苦相思,+若问相思为何苦,+只因相思已入骨。这段话怎么回_百度问一问 明知相思苦,偏要苦相思? 明知相思苦偏要苦相思的上一句是什么 明知相思苦,偏要苦相思;若问相思为何苦,只因相思已入骨明知相思苦,偏要苦相思。若问相思为何苦,只因_百度问一问 明知相思苦,还是苦相思什么意思 明知相思苦,偏又苦相思。出自何处?类似意义的诗句分别有哪些? 《明知相思苦》。偏偏苦相思。有缘无分,是人事的悲哀,有份无缘,却是人生的无奈? 《明知相思苦,偏要苦相思》求上联 迅捷FW326R无线路由器上网怎么设置