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

这条语句是怎么运行的?解释清楚一些,呵呵
2025-02-02 11:11:12
推荐回答(5个)
回答1:

*p++=*s++;

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

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

可以这么解释
*p++=*s++这个表达式的功能就是将*s的值赋值给*p,然后各自指向自己的下一个元素

回答2:

就是把指针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了

回答3:

p, s应该都是指针
*p就是指针下的数据
先把s地址下的数据赋值给p地址下的数据 即:*p = *s
然后在把两个指针指向下一个位置 即:p++,s++,
偏移的地址为*p的类型所占用的字节数

回答4:

将指针*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

回答5:

*p=*s;
p++;
s++;
其实就是字符串复制
谢谢采纳