关闭

两变量内容的交换细节之指针

274人阅读 评论(0) 收藏 举报
分类:

// #include<stdio.h>
// void swap(int *m, int *n)
// /* {
// int tem = *m;//a的地址指向的内容10
// *m = *n;//将a的地址指向的内容(变量)赋值为20;------------------------->是将地址里面的内容进行交换
// *n = tem;//将b的地址指向的内容赋值为10
// } */

// {
// int tem = m;//将a的地址传递给tem;
// m = n; //将b的地址赋值给a;---------------------------->仅仅是将两个地址进行交换
// n = tem;//将a的地址赋值给b;
// printf("%d\n%d\n",m,n);
// }

// int main()
// {
// int a = 10, b = 20;
// int *c,*d;

// swap(&a, &b);

// printf("%d%d\n", a, b);

// c = &a;
// d = &b;

// printf("%d\n, %d\n", c, d);

// return 0;
//
// }
#include<stdio.h>

void swap(int m,int n)
{
int tem = m;
m = n;                        ---------------->//将a,b的值赋值给m,n,交换的仅仅是m,n和a,b无关;
n = tem;

}

int main()
{
int a = 10, b = 20;
swap(a, b);
printf("%d\n%d\n", a, b);

 

}


0
0
查看评论

指针之交换两个变量的值

方案1:不使用指针  如果不使用指针交换两个变量的值,坦白来说是个不可能完成的任务,你可能会写成这样的:   #include "stdio.h"void swap(int a,int b) { int temp; temp = a; a = b; ...
  • molake10344
  • molake10344
  • 2015-12-08 16:37
  • 4656

【c++程序】通过指针来交换两个数的值

/*  *文件名称:pointer.cpp  *作    者:Zhao Tilu  *完成日期:2014年10月5日  *问题描述:通过指针修改定义的数值  */ #include using namespace s...
  • u012503639
  • u012503639
  • 2014-10-14 18:51
  • 2165

解惑——用指针交换两个数字时所犯的错误

以前经常刚开始写c的时候经常犯错,想想也很有意思,最近正好趁着这个时光 做了一下总结。c中指针的使用时非常重要的,但是无论是什么语言,都要首先树立内存空间这一概念,这样的话会很容易找到不同语言之间的相似点。首先我们要明白,一个内存单元的地址就叫做指针。那什么是内存单元呢?一般来说我们把存储器中的一个...
  • dd864140130
  • dd864140130
  • 2014-11-12 01:16
  • 1144

C语言中如何用指针交换两个数的大小

如何用传址的方式交换两个数的大小 首先先看第一个程序,用函数的调用来解决看似正确实则运行出来的结果是错误的 #define _CRT_SECURE_NO_WARNINGS 1 #include #include #include int JH(int x, int y); int main() { ...
  • persistence_s
  • persistence_s
  • 2016-10-01 11:04
  • 1669

C语言利用指针在函数中交换两个数的思考

这个是一个深刻理解指针和函数的问题。本来自己当初很认真的看过这个问题,可是现在搞运维去了,对linux倒是挺熟的,结果把以前的知识忘了。哎,真是悲哀。今天突然有个s b问我,我一时还有点懵,这里记录一下。 void swap1(int *a,int *b) { int *p;...
  • qq_25417713
  • qq_25417713
  • 2016-12-15 22:18
  • 6178

把指针换成引用来交换两个数的值

把指针换成引用来交换两个数的值
  • u012221917
  • u012221917
  • 2014-03-09 22:02
  • 831

C语言——经典的两个数互换的程序——更好的理解指针!!!

# include<stdio.h> int main(void) { void huhuan(int ,int); void huhuan_1(int *,int *); void huhuan_2(int *,int *); int a=3; int...
  • jingzi123456789
  • jingzi123456789
  • 2016-05-11 15:20
  • 4810

用函数和指针实现两个数的交换

#include void swap(int* p1,int* p2) {  int t;  t=*p1;  *p1=*p2;  *p2=t; } int main() {  int i,j;  ...
  • liu_111111
  • liu_111111
  • 2011-11-02 11:41
  • 793

不用临时的变量 交换两个数的两种方法

就地交换两个数是比较经典而且基础的算法之一。 我们要交换两个数字,通常的做法就创建一个中间变量,然后进行循环赋值,比如说下面的代码: void Switch(int* p1, int* p2) { int tmp = *p1; *p1 = *p2; *p2 =...
  • a253664942
  • a253664942
  • 2015-05-09 16:47
  • 2429

程序猿之---C语言细节12(指针和数组细节,"//"的可移植性说明)

主要内容:指针和数组细节,"//"的可移植性说明 #include int main(int argc, char **argv) { int a[10]={1,2,3,4,5,6,7,8,9,0},*p; #if 0 /* 按移植性来说,在《c语言程序设计--现代方...
  • wujunbo27
  • wujunbo27
  • 2014-11-07 18:17
  • 759
    个人资料
    • 访问:44584次
    • 积分:1127
    • 等级:
    • 排名:千里之外
    • 原创:69篇
    • 转载:16篇
    • 译文:0篇
    • 评论:0条