练习3: 通过打印指针,加深对交换函数和指针的理解。
2015-04-10 10:10
281 查看
和练习2相同,增加了指针打印。大家可以观察指针值,来理解swap1不起作用,swap2有效。
#include "stdafx.h"
void swap1(int a, int b)
{
printf("swap1 地址 a=%p, b=%p\n",&a,&b);
int temp = b;
b = a;
a = temp;
}
void swap2(int *a, int *b)
{
printf("swap2 地址 a=%p, b=%p\n",a,b);
int temp = *b;
*b = *a;
*a = temp;
}
int main()
{
int a= 7, b= 8;
printf("原始地址 a=%p, b=%p\n",&a,&b);
swap1(a,b);
printf("swap1 a=%d,b=%d\n",a,b);
swap2(&a,&b);
printf("swap2 a=%d,b=%d\n",a,b);
printf("原始地址 a=%p, b=%p\n",&a,&b);
return 0;
}
#include "stdafx.h"
void swap1(int a, int b)
{
printf("swap1 地址 a=%p, b=%p\n",&a,&b);
int temp = b;
b = a;
a = temp;
}
void swap2(int *a, int *b)
{
printf("swap2 地址 a=%p, b=%p\n",a,b);
int temp = *b;
*b = *a;
*a = temp;
}
int main()
{
int a= 7, b= 8;
printf("原始地址 a=%p, b=%p\n",&a,&b);
swap1(a,b);
printf("swap1 a=%d,b=%d\n",a,b);
swap2(&a,&b);
printf("swap2 a=%d,b=%d\n",a,b);
printf("原始地址 a=%p, b=%p\n",&a,&b);
return 0;
}
相关文章推荐
- 练习2: 通过交换函数的实现,学习指针的用法。
- C中打印堆栈或者通过函数指针获取函数名
- 【Weiss】【第03章】练习3.3:通过交换指针交换单/双链表元素
- 通过void指针实现跨类型变量交换函数
- 函数交换,通过指针访问地址
- 通过控制台打印数据加深对构造函数和类的理解
- 通过函数给指针赋值(二)交换两个变量的值
- C语言之最好理解的通过函数指针作为参数实现回调函数
- 练习4: 设计字符串反转函数,理解字符串,数组,指针的内在联系。
- [转] 通过汇编代码理解成员函数指针并不是指针
- C语言的函数中,如何使用指针交换两个数的值,深入理解指针
- 练习 3.3 通过只调整指针(不是数据)来交换两个相邻的元素
- 传说中的回调函数练习,也就是指针的深入理解
- p62 练习3.3 通过只调整指针(而不是数据)来交换两个相邻的元素,使用:
- 【LVL1_5_c】【课后练习】【4】 定义一个函数,交换两个数的值。(使用指针)
- 通过汇编代码理解成员函数指针并不是指针
- 通过交换虚函数表指针查看虚函数的实现方式
- 指针初学笔记(两个数交换的函数----关于指针的理解)
- C通过函数交换指针的值
- 用交换函数来理解指针