,c语言,谁能告诉我*q++=*P++含义,

如题所述

*表示这是一个指针,q和P都是指针变量,里面存放的数据一般情况下是一个地址。
如果你定义了一个变量如: char a;
那么系统会分配给这个a一个房间来存储char型的变量,这个变量(房间)很显然是有地址的(门牌号),不然你就找不到这个房间了。
如果定义了一个指针一般都会给这个指针赋值,比如:q=&a; &是取地址符。q前面加一个*就是*q,*就是一指针,而q里面的内容是a的地址(门牌号)。
*q就是指向这个地址的. 你访问*q的时候它一下子就指到了a的门牌号,所以你看到的就是a里面的东西;
如果a=5; p=&a; 那么 *p=5;
++就是自加的意思a++;就是a=a+1 ;
我想你应该是看错了或者打错了吧。
应该是*(q++)=*(P++);才对的吧?
温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-04-20
++,*的运算符级别相同,但是结合律是 从右到左的 所以先执行++,先执行*p = *q,在执行++的,这是因为++的特性
指针q所指的内容自增后赋给指针p所指的地址的下个单元,比如说是int类型(占四个字节)
假设q存储的地址是100,那执行q++后所指向的地址就是104(并不是101,要注意这一点)(p++类似,不再说明)
再把104这个地址的值取出来,赋给改变后p所指向的地址的值,这就实现了更改值的操作。
再说明P++的地址==p原来指向的地址+类型所占字节数*1
如果是*p+n(n是整数)的意思是p原来指向地址+类型所占字节数*n所在地址存放的值
不懂可以继续问
第2个回答  2016-04-20
这里的p,q指针应该分别指向了两个不同的数组或者字符串,实现的功能是将p指针指向的元素值赋给q指针指向的元素值,在执行了赋值操作后,p、q指针各向后移动一位
第3个回答  2016-04-20
把指针p指向的目标内容赋给指针q指向的目标(变量),然后指针q增1(加一个目标类型所需的字节数),指针p增1(加一个目标类型所需的字节数)。
相似回答