c语言中*p++=*s++;是什么意思?

这条语句是怎么运行的?
解释清楚一些,呵呵

*p++=*s++;

=这个在此是赋值号,
赋值号左边为变量,右边为表达式

我们先分解右边表达式
*s++
指针*s和一元运算符++
指针s会执行++,向右移一个单位,也就是s的下一个元素(例:若s为char型指针,就向右移8位,若为float型就移32位)
但是*s++的一元运算符++在*s右边,因此*s++这个表达式的值就为*s

可以这么解释
*p++=*s++这个表达式的功能就是将*s的值赋值给*p,然后各自指向自己的下一个元素
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-11-03
就是把指针s所指向空间的内容赋值给指针p所指向的内容
例如:有两个数组a[10]和b[10]
加入a数组中存有内容,而b数组为空
s=a;//把数组a的首地址传递给p指针
p=b;//把数组b的首地址传递给s指针
while(p<=&a[10]){ p所指向地址的值小于a[10]的地址,就循环
*p++=*s++;
}这样就把a数组中的内容复制给b了
第2个回答  2011-11-03
p, s应该都是指针
*p就是指针下的数据
先把s地址下的数据赋值给p地址下的数据 即:*p = *s
然后在把两个指针指向下一个位置 即:p++,s++,
偏移的地址为*p的类型所占用的字节数
第3个回答  推荐于2018-04-05
将指针*c的值赋给*p,然后p,s的地址前进一位。

例如 int a[10]={1,2,3,4,5,6,7,8,9,10};
int *p=&a[1],s=&a[5];
则执行*p++=*s++后,a[1]=6,*p=a[2]=3,*s=a[6]=7本回答被提问者和网友采纳
第4个回答  2011-11-03
*p=*s;
p++;
s++;
其实就是字符串复制
谢谢采纳