本帖最后由 堕落天使 于 2015-9-15 20:40 编辑
一个简单地程序,但是能体现出指针的用法。- /*
- 思考&实现
- 用函数实现两个变量值的交换。
- */
- #include <stdio.h>
- /**
- * 通过指针交换两个变量的值
- *
- * @param p 第一个变量的地址
- * @param p1 第二个变量的地址
- */
- void exchang(int *p,int *p1){
- int temp;
- temp=*p; //注意此处是取指针p指向地址内的值进行运算。
- *p=*p1;
- *p1=temp;
- }
- /**
- * 此方法不能实现交换的功能
- * 在此函数中,形参a和b的值实现了交换,但是程序结束,此函数分配的内存
- * 消失,对应的形参的内存也消失,交换的值没有对实参产生任何影响。
- * 所以不成功。
- */
- void exchang_1(int a,int b){
- int temp;
- temp = a;
- a = b;
- b = temp;
- }
- int main(int argc, const char * argv[]) {
- int a=5, b=4;
- printf("交换前a = %d,b = %d\n",a,b);
- exchang(&a, &b);
- printf("交换后a = %d,b = %d\n",a,b);
- int a1=5, b1=4;
- printf("交换前a1 = %d,b1 = %d\n",a1,b1);
- exchang_1(a1,b1);
- printf("交换后:a1= %d,b1= %d",a1,b1);
- //结果并为交换。
复制代码
|
|