新手求教一个问题

jy05526924 2010-05-29 11:38:55
#include <stdio.h>
void Swap_Int(int* value1,int* value2);

void main()
{


int value1;
int value2;
printf(">");
scanf("%d%d", &value1,&value2);


Swap_Int(&value1,&value2);
printf("%d ", value1);
printf("\n");
printf("%d ", value2);
printf("\n");


}
void Swap_Int(int* value1,int* value2)
{
int temp;
temp=*value1;
*value1=*value2;
*value2=temp;
}
第一道题就是改成2个题,一个是改成将value1初始化为3,输入value2为4,得出的结果是3\n4;然后再改成一道value1初始化为4,输入value2为3的,。

#include <stdio.h>
void Swap_int_Array(int*,int*);
int main()
{
int value1[5]={1,2,3,4,5};
int value2[5];
int i;
printf(">");
for(i=0; i<5; i++){
scanf("%d", &value2[i]);
}
Swap_int_Array(value1,value2);
for(i=0; i<5; i++){
printf("%d ", value1[i]);
}
printf("\n");
for(i=0; i<5; i++){
printf("%d ", value2[i]);
}
printf("\n");

return 0;
}
void Swap_int(int* first, int* second);
void Swap_int_Array(int *value1,int *value2)
{
int temp, i;
for(i = 0; i != 5; ++i)
{
Swap_int(&value1[i], &value2[i]);
}
}
void Swap_int(int* first, int* second)
{
int temp;
temp=*first;
*first=*second;
*second=temp;
}
第二道题是2个值互换。和第一题的第二道是一样的。
一共3个题。谢谢
...全文
104 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
liutengfeigo 2010-05-31
  • 打赏
  • 举报
回复
ww884203 2010-05-31
  • 打赏
  • 举报
回复
代码我看得很明白,但是你说的话我实在是看不懂……
赵4老师 2010-05-31
  • 打赏
  • 举报
回复
VC调试时按Alt+8,TC或BC用TD调试,打开汇编窗口看每句C对应的汇编不就啥都明白了吗。
(Linux或Unix下应该也可以在用GDB调试时,看每句C对应的汇编。)
想要从本质上理解C指针,必须学习汇编以及C和汇编的对应关系。
从汇编的角度理解和学习C语言的指针,原本看似复杂的东西就会变得非常简单!


单步调试和设断点调试是程序员必须掌握的技能之一。
gjlzjb 2010-05-30
  • 打赏
  • 举报
回复
第三题:

#include <stdio.h>
void Swap_int_Array(int*,int*);
int main()
{
int value1[5]={1,2,3,4,5}; //初始化数组1
int value2[5]; //数组2
int i;
printf(">");
for(i=0; i<5; i++){
scanf("%d", value2+i); //输入
}
Swap_int_Array(value1,value2);//两个数组交换
for(i=0; i<5; i++){
printf("%d ", value1[i]);
}
printf("\n");
for(i=0; i<5; i++){
printf("%d ", value2[i]);
}
printf("\n");

return 0;
}
void Swap_int(int* first, int* second);
void Swap_int_Array(int *value1,int *value2) //数组交换
{
int i;
for(i = 0; i != 5; ++i)
{
Swap_int(value1+i, value2+i); //值交换
}
}
void Swap_int(int* first, int* second)
{
int temp;
temp=*first;
*first=*second;
*second=temp;
}
gjlzjb 2010-05-30
  • 打赏
  • 举报
回复
第一题:

#include <stdio.h>
void Swap_Int(int* value1,int* value2);

void main()
{
int value1=3; //初始化value为3
int value2;
printf(">");
scanf("%d",&value2); //输入value2

Swap_Int(&value1,&value2);
printf("%d ", value1);
printf("\n");
printf("%d ", value2);
printf("\n");


}
void Swap_Int(int* value1,int* value2)
{
int temp;
temp=*value1;
*value1=*value2;
*value2=temp;
}


第二题:

#include <stdio.h>
void Swap_Int(int* value1,int* value2);

void main()
{
int value1=4; //初始化value为4
int value2;
printf(">");
scanf("%d",&value2); //输入value2

Swap_Int(&value1,&value2);
printf("%d ", value1);
printf("\n");
printf("%d ", value2);
printf("\n");


}
void Swap_Int(int* value1,int* value2)
{
int temp;
temp=*value1;
*value1=*value2;
*value2=temp;
}
patricxuqi 2010-05-30
  • 打赏
  • 举报
回复
帮你顶一下算了。
akonlbjrd 2010-05-30
  • 打赏
  • 举报
回复
难道是作业题??
y7501272 2010-05-30
  • 打赏
  • 举报
回复
#include <stdio.h>
void Swap_Int(int* value1,int* value2);

void main()
{


int value1;
int value2;
printf(">");
scanf("%d%d", &value1,&value2);


Swap_Int(&value1,&value2);//传递的是指针 所以是指针所指向的值的交换
printf("%d ", value1);
printf("\n");
printf("%d ", value2);
printf("\n");


}
void Swap_Int(int* value1,int* value2)//两个内存空间里面的值交换 就是C语言的地址传递
{ //value1 value2是指针变量
int temp;
temp=*value1;
*value1=*value2;
*value2=temp;
}
现在输出是3 4
#include <stdio.h>
void Swap_Int(int* value1,int* value2);

void main()
{


int value1;
int value2;
printf(">");
scanf("%d%d", &value1,&value2);


Swap_Int(value1,value2);//没有地址符了
printf("%d ", value1);
printf("\n");
printf("%d ", value2);
printf("\n");


}
void Swap_Int(int value1,int value2)//两个拷贝在交换 不影响实参 就是C语言的值传递
{ //value1 value2是整形变量
int temp;
temp=*value1;
*value1=*value2;
*value2=temp;
}

哎 我晓得 我说成这样你应该看不太懂 对指针的认识是需要时间的
两三句话 说不清楚
y7501272 2010-05-30
  • 打赏
  • 举报
回复
??楼主想干嘛?
wade_2003 2010-05-30
  • 打赏
  • 举报
回复

#include <stdio.h>
void Swap_Int(int* value1,int* value2);

void main()
{


int value1;
int value2;
printf(">");
scanf("%d%d", &value1,&value2);
int *va1,*va2;
va1 = &value1;
va2 =&value2;

Swap_Int(va1,va2);
printf("%d ", value1);
printf("\n");
printf("%d ", value2);
printf("\n");


}
void Swap_Int(int* value1,int* value2)
{
int temp;
temp=*value1;
*value1=*value2;
*value2=temp;
}
jy05526924 2010-05-30
  • 打赏
  • 举报
回复
哪位大侠有QQ?能指教下
lnuyasha_hrb 2010-05-30
  • 打赏
  • 举报
回复
我也是看不明白啊
budweiser 2010-05-30
  • 打赏
  • 举报
回复
是在不明白楼主的意思。。。

64,682

社区成员

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

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