|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- // c++
- #include <iostream>
- void swap(int *a, int *b)
- {
- int temp = *a;
- *a = *b;
- *b = temp;
- }
- int main(void)
- {
- int a = 3, b = 5;
- std::cout << "交换前"
- << " a = " << a << ", b = " << b << std::endl;
- swap(&a, &b);
- std::cout << "交换后"
- << " a = " << a << ", b = " << b << std::endl;
- }
复制代码
- // c
- #include <stdio.h>
- void swap(int *a, int *b)
- {
- int temp = *a;
- *a = *b;
- *b = temp;
- }
- int main(void)
- {
- int a = 3, b = 5;
- printf("交换前, a = %d, b = %d\n", a, b);
- swap(&a, &b);
- printf("交换后, a = %d, b = %d\n", a, b);
- }
复制代码
代码如上,有 c 和 c++ 两个版本的,现有几个疑问,
1.
void swap(int *a, int *b) 函数里面传入的 *a 和 *b 是 a b 对应的值吗还是地址?
2.
如果 上面的问题是对的话,那么为什么 main 函数里面调用 swap 函数的时候,传递的却是 a b 的地址
3.
void swap(int *a, int *b) 里面进行的操作是不是 将 a 的地址给 temp, b 的地址给 a,temp 的地址 给 b 完成 a b 两个的值得转换
- // c
- #include <stdio.h>
- void swap(int *p1, int *p2)
- {
- int temp = *p1;
- *p1 = *p2;
- *p2 = temp;
- }
- int main(void)
- {
- int a = 3, b = 5;
- printf("交换前, a = %d, b = %d\n", a, b);
- swap(&a, &b);
- printf("交换后, a = %d, b = %d\n", a, b);
- }
复制代码
|
|