利用指针变量 调用函数实现3个数的排序

#include<stdio.h>

void exchange(int *q1, int *q2, int *q3)

{

void swap(int *w1, int *w2);

if (*q1 < *q2)swap(q1, q2);//这里的顺序不能乱改

if (*q1 < *q3)swap(q1, q3);

if (*q2 < *q3)swap(q2, q3);

}

void swap(int *w1, int *w2)

{

int temp = 0;

temp = *w1;

*w1 = *w2;

*w2 = temp;

}

int main()

{

int a = 0, b = 0, c = 0;

int *p1 = 0, *p2 = 0, *p3 = 0;

printf("please ente three number:");

scanf("%d%d%d", &a, &b, &c);

p1 = &a, p2 = &b, p3 = &c;

exchange(p1, p2, p3);

printf("%d %d %d", a, b, c);

system("pause");

return 0;

}

时间: 2024-10-09 00:05:47

利用指针变量 调用函数实现3个数的排序的相关文章

[C++程序设计]用函数指针变量调用函数

指针变量也可以指向一个函数.一个函数在编译时被分配给一个入口地址.这个函数入口地址就称为函数的指针.可以用一个指针变量指向函数,然后通过该指针变量调用此函数 1 #include <iostream> 2 using namespace std; 3 4 int main() 5 { 6 int max(int,int); 7 int (*p)(int,int); 8 p = max; 9 int m, a, b; 10 cin >> a >> b; 11 m = p(

c语言:利用指针变量,用函数实现将3个整数按从大到小的顺序输出

利用指针变量,用函数实现将3个整数按从大到小的顺序输出. 解:程序: #include<stdio.h> void swap(int *ptr1, int *ptr2) { int temp = *ptr1; *ptr1 = *ptr2; *ptr2 = temp; } void exchange(int *q1, int *q2,int *q3) { void swap(int *ptr1, int *ptr2); if (*q1 < *q2) { swap(q1, q2); } if

编程题:指针变量作函数参数,将两个整数按由大到小的顺序输出。

分析:通过指针变量作函数参数,无需返回值和全局变量,主调函数就可以使用被调用函数改变的值. #include<stdio.h> void swap(int *p1,int *p2) { int p; p=*p1; *p1=*p2; *p2=p; } void main() { int a=3,b=4; int *ptr1,*ptr2; ptr1=&a;ptr2=&b; if(a<b) swap(ptr1,ptr2); printf("%d,%d\n",

C语言---指针变量作为函数参数

在C语言中,函数的参数不仅可以是整数.小数.字符等具体的数据,还可以是指向它们的指针.用指针变量作函数参数可以将函数外部的地址传递到函数内部,使得在函数内部可以操作函数外部的数据,并且这些数据不会随着函数的结束而被销毁.像数组.字符串.动态分配的内存等都是一系列数据的集合,没有办法通过一个参数全部传入函数内部,只能传递它们的指针,在函数内部通过指针来影响这些数据集合.有的时候,对于整数.小数.字符等基本类型数据的操作也必须要借助指针,一个典型的例子就是交换两个变量的值.有些初学者可能会使用下面的

C言语指针变量作为函数参数

在C言语中,函数的参数不只可所以整数.小数.字符等详细的数据,还可所以指向它们的指针.用指针变量作函数参数可以将函数内部的地址传递到函数外部,使得在函数外部可以操作函数内部的数据,而且这些数据不会跟着函数的完毕而被烧毁.像数组.字符串.静态分派的内存等多是一系列数据的聚集,没有方法经过一个参数全体传入函数外部,只能传递它们的指针,在函数外部经过指针来影响这些数据聚集.有的时分,关于整数.小数.字符等根本类型数据的操作也必需要借助指针,一个典型的例子就是交流两个变量的值.有些初学者能够会运用下面的

C语言指针变量作为函数参数

0x01 指针变量作为函数参数的作用是:将一个变量的地址传送到另一个函数中. 0x02 简单的例子:虽然都能实现功能,但意义不同. 正确的写法: 1 #include <stdio.h> 2 3 void shuchu(int *p) 4 { 5 printf("%d\n", *p); 6 } 7 8 int main() 9 { 10 int a; 11 int *pa; 12 scanf("%d", &a); 13 pa = &a;

[C++程序设计]用指针变量作函数参数接收数组地址

1 #include <iostream> 2 using namespace std; 3 4 void select_sort(int *p, int n) 5 { 6 int i, j, k; 7 for(i = 0; i < n - 1; i++) 8 { 9 for(j = i + 1; j < n; j++) 10 { 11 if(p[i] > p[j]) 12 { 13 k = p[i]; 14 p[i] = p[j]; 15 p[j] = k; 16 } 17

【C++】利用指针实现通过函数改变多个参数的值

写惯了python,对于C++的语法越来越生疏,不同于python中函数可以return多个变量,C++的函数要想返回多个参数可以利用指针实现. 因为在函数内部的变量都是局部变量,所以当参数传入函数中,不return不会改变函数之外的全局变量的值.但是如果传入指针参数或者地址参数,则可以实现对外部变量的改变.有以下2种做法: 1.函数定义: void function(int &a){ a = 500; //return; //void时可以省略return } 函数调用: int b = 10

指针变量作为函数参数(1)

普通函数参数 下面程序试图改变main函数中a和b的值 #include<stdio.h> void fun(int x,int y) { int c; c=a; a=b; b=c; } int main() { int a=1,b=2; fun(a,b); printf("a=%d b=%d\n",a,b); return 0; } 函数参数传递分析: 实参: &a 28ff18 a  1 &b 28ff14 b  2 在将实参传递给形参的时候,编译器将实