数组在函数内地址的改变

yu3wu4 2014-07-17 09:26:41
[b]#include<iostream>
using namespace std;
void hanshu(int *a,int *b);
void printout(int *a);
int main()
{
int a[10],b[10];
for(int i=0;i<10;i++)
{a[i]=i;b[i]=i;}
hanshu(a,b);

printout(a);
return 0;
}
void printout(int *a)
{
for(int i=0;i<10;i++)
{
cout<<a[i]<<" ";
}
cout<<endl;
}
void hanshu(int *a,int *b)
{
b[1]=3;b[7]=2;
a=b;
printout(a);
}
/*在函数里面有语句a=b,在主函数内并没有实现这种改变,请问除了逐个将b的值赋给a,有什么其他方法?*/
...全文
160 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
FightForProgrammer 2014-07-17
  • 打赏
  • 举报
回复
在函数里面有语句a=b,在主函数内并没有实现这种改变,又不能在函数中改变。 那你要在哪改变?
我看你有戏 2014-07-17
  • 打赏
  • 举报
回复

#include <iostream>

typedef struct _stdata
{
	int ary[10];
}stdata;
int main()
{
	int a[10],b[10];
	int i;
	for(i=0;i<10;i++)
	{
		a[i]=i;
		b[i]=10 - i;
	}

	*(stdata*)&a = *(stdata*)&b;

	for(i=0;i<10;i++)
	{
		printf("a[%d]=%d\n",i,a[i]);
	}

    return 0;
}
//vc6.0  亲测之
yu3wu4 2014-07-17
  • 打赏
  • 举报
回复
引用 1 楼 FightForProgrammer 的回复:
使用memcpy内存拷贝函数
有其他依靠地址改变这样的方法么?
FightForProgrammer 2014-07-17
  • 打赏
  • 举报
回复
使用memcpy内存拷贝函数

64,680

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧