第二次作业
Posted 韩宝存
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第二次作业相关的知识,希望对你有一定的参考价值。
#include<stdio.h> int main() { void swap(int *p1,int *p2); int a,b; int *pointer_1,*pointer_2; scanf("%d%d",&a,&b); pointer_1=&a; pointer_2=&b; swap(pointer_1,pointer_2); printf("%d,%d\\n",a,b); } void swap(int *p1,int *p2) { int n; n=*p1; *p1=*p2; *p2=n; }
9 8 8,9 -------------------------------- Process exited after 2.188 seconds with return value 0 请按任意键继续. . .
总结:1、调用了一个swap函数,同是使用指针作为形参,实现两个数的交换,如果再加入一个if语句还可以实现输出较大,较小值。
2、主函数调用错误,函数类型没有弄清楚,过程中,两个值没有调换。编程过程中小错误太多,不太仔细,导致程序无法运行。
3、应该仔细认真,多看看课本,掌握好学习方法,多编程,熟悉c语言,对其不再陌生。多看看书上例题,认真消化,仔细钻研,争取做到最好。
#include<stdio.h> int main() { void swap(int *p1,int *p2); int a,b; int *pointer_1,*pointer_2; scanf("%d%d",&a,&b); pointer_1=&a; pointer_2=&b; swap(pointer_1,pointer_2); printf("%d,%d\\n",a,b); } void swap(int *p1,int *p2) { int *n; *n=*p1; *p1=*p2; *p2=*n; }
2 7 -------------------------------- Process exited after 2.854 seconds with return value 3221225477 请按任意键继续. . .
总结:1、p1就是a的整形变量,而*n是指针变量n所指向的变量但n中并无确定的值,因此n所指向的单元也是不可预见的。所以应该将*p1的值附给一个整形变量用整形变量n作为临时辅佐变量实现*p1*p2的交换。
2、这是交换a和b的值,而p1和p2的值不变,要牢记这一点。
3、编程过程中要仔细,把指针指向的地址分清,注意交换的值与不变的值,从而实现a和b的互换。
#include<stdio.h> int main() { void swap(int *p1,int *p2); int a,b; int *pointer_1,*pointer_2; scanf("%d%d",&a,&b); pointer_1=&a; pointer_2=&b; swap(pointer_1,pointer_2); printf("%d,%d\\n",a,b); } void swap(int *p1,int *p2) { int *n; n=p1; p1=p2; p2=n; }
2 7 2,7 -------------------------------- Process exited after 2.854 seconds with return value 3221225477 请按任意键继续. .
总结:1、交换pointer_1和pointer_2的值使lointer_1指向值大的变量。先使pointer_1指向a,pointer_2指向b调用swap函数将pointer值传给p1,pointer值传给p2,在swap中实现p1p2的交换形参p1,p2将地址传回实参pointer_1和pointer_2使pointer_1指向b,pointer_2指向a,输出*pointer_1和*pointer_2得到结果。
2、这个代码不能正常运行,原因是*p是一个指针变量p的指向内容不知道,p没有确定的值因此p的值是无法预料的。
3、函数的调用可以得到一个返回值,而运用指针变量作为参数可以得到多个变化了的值。如果不用指针变量是难以做到这一点,这突出了指针的重要性。
以上是关于第二次作业的主要内容,如果未能解决你的问题,请参考以下文章