void fun(int a[], int n, int b[], int m, int *c)
{
int i,j;
for(i=j=0;i{
*c++=a[i] }
while(iwhile(j }
换成容易懂的写法就是
void fun(int a[], int n, int b[], int m, int *c)
{
int i = 0, j = 0, ci = 0;
while(i < n && j < m)
{
if(a[i] < b[j])
{
c[ci] = a[i];
i++;
} else
{
c[ci] = b[j];
j++;
}
ci++;
}
while(i < n) {
c[ci] = a[i];
i++;
ci++;
}
while(j < m) {
c[ci] = b[j];
j++;
ci++;
}
}
*c++=a[i]
等号左边:
c是个int指针,也可理解为数组
c++就是指针自增,用数组来理解就是,让c指针指向数组中下一个位置
*c是指针取值
c++是先返回后自增,++c是先自增在返回
所以*c++就是取c指针当前所指的int,然后让c指针指向下一个位置
等号右边:
a[i]
(条件) ? (符合条件所返回的值) : (不符合条件所返回的值)
*c++=a[i]if(a[i]{*c=a[i];
c++;
i++;}
else
{*c=b[j];
c++;
j++;
}
*c++=a[i]if(a[i]{*c=a[i];
c++;
i++;}
else
{*c=b[j];
c++;
j++;
}
改动之后应该可以看懂了吧
下面这个小程序是验证上面的?:中的++运算符的
#include
using namespace std;
int main()
{
int i=1;
int j=2;
int c=i
}