如何使用指针结合两个数组? 用指针交换两个数组

9785℃ CALEB

如何使用指针结合两个数组?用指针交换两个数组

请问如何用指针交换两个数组

main()

{

int a[3]={1,2,3},b[3]={4,5,6},t,i,*p1=a,*p2=b;

for (i=0;i<3;i++)

{

t=*p1;*p1=*p2;*p2=t;

p1++;p2++;

}

for (i=0;i<3;i++)

printf("%d\t",a[i]);

printf("\n");

for (i=0;i<3;i++)

printf("%d\t",b[i]);

getch();

}

C语言,怎么使用指针实现合并两个有序数组

各种语法错误,这个连编译都不行。

i++是指自加1,后面不能加数字;

最上面的解引用那里估计你括号放错了,*号要在括号外面

数字a和数组b,直接int *i=a;就行,不需要再取地址。

printf中,i是一个整数,不能被解引用。

C语言用指针引用数组元素

(*p)[3]是定义一个指向一维数组的指针,数组元素为三。也就是说p指向的其实是a[0],a[1],a[2]这样的形式。

p=a;其实就是把第0行的首地址赋值给p.

所以答案C中p[1]即是把第1行的首地址给p,在此基础上向后移一位,取出地址中的元素数值。 *(p[1]+1)相当于a[1][1].所以是对的。

B的形式是对的,但是它相当于a[2][1],超出界限所以为错。剩下的两个格式就不对。

C语言 怎么把指针的值 赋给另一个数组

循环赋值, 或者直接strcpy。 因为这里是字符串。 

比如

#include<stdio.h>

int main()

{

int i=0;

char a[100];

scanf("%s",a);

fun(&a);

return 0;

}

int fun(int *p)

{

int i,b,c,d;

char j[100];

strcpy(j, p);

//用memcpy也可以。

//memcpy(j, p, sizeof(j));

//我想在这之后 让j【100】接收到上面那个数组的值 并输出我应该怎么写用指针!

return 0;

}