实现两个变量值的互换[C语言和C++的区别]

简介: 实现两个变量值的互换[C语言和C++的区别]

文章前言:

   我们讨论C语言和C++再对两个变量值的交换问题上其实是在讨论C语言和C++在进行参数传值方式上的区别。

一.准备知识:

  1. C++的引用
  2. C语言指针
  3. 定义swap交换函数

二.利用指针的方式交换两个变量的值

   一.指针的方法口诀:

          实参传地址,形参指针收

(1).实参调用接口:传地址

swap(&i, &j);

(2).形参接收接口:指针收

void swap(int *p1, int *p2)

(3).完整代码:

#include<iostream>
using namespace std;
void swap(int *p1, int *p2)
{
  int temp;
  temp = *p1;
  *p1 = *p2;
  *p2 = temp;
}
int main()
{
  int i,j;
  printf("input i and j :\n");
  scanf("%d%d", &i, &j);
  printf("after swap the values:\n");
  swap(&i, &j);
  printf("%d%2d", i, j);
  return 0;
}

执行结果:

三.利用引用的方式交换两个变量的值:

一.引用[引用即别名]的方法口诀:

          实参传变量,形参别名收

(1).实参调用接口:传递变量

swap(i, j);

(2).形参接收接口:别名收

void swap(int &p1, int &p2)

(3).完整代码:

#include<iostream>
using namespace std;
void swap(int &p1, int &p2)
{
  int temp;
  temp = p1;
  p1 = p2;
  p2 = temp;
}
int main()
{
  int i,j;
  printf("input i and j :\n");
  scanf("%d%d", &i, &j);
  printf("after swap the values:\n");
  swap(i, j);
  printf("%d%2d\n", i, j);
  return 0;
}

执行结果:

四.引用和指针传递值的区别:

  1. C++用引用的方式传值更多,因为引用是不占内存空间的。
  2. C语言用指针的方式传值更多,但是指针耗内存空间。
  3. 引用变量和变量是同时发生变化的。
目录
相关文章
|
18天前
|
算法 Java 数据库连接
Java 与 C++ 区别深入剖析及应用实例详解
本文深入剖析了Java和C++两种编程语言的区别,从编译与执行机制、面向对象特性、数据类型与变量、内存管理、异常处理等方面进行对比,并结合游戏开发、企业级应用开发、操作系统与嵌入式开发等实际场景分析其特点。Java以跨平台性强、自动内存管理著称,适合企业级应用;C++则因高性能和对硬件的直接访问能力,在游戏引擎和嵌入式系统中占据优势。开发者可根据项目需求选择合适语言,提升开发效率与软件质量。附面试资料链接:[点此获取](https://pan.quark.cn/s/4459235fee85)。
49 0
|
5月前
|
存储 人工智能 程序员
一文彻底搞清楚C语言的数据类型和变量
本文介绍了数据类型(基本、构造、指针、空类型)、变量(使用、命名规则、作用域)和常量(字面、符号、枚举、表达式),帮助初学者理解编程基础概念。坚持学习,定能创造奇迹!
501 1
一文彻底搞清楚C语言的数据类型和变量
|
7月前
|
存储 编译器 C语言
【C语言】C语言的变量和声明系统性讲解
在C语言中,声明和定义是两个关键概念,分别用于告知编译器变量或函数的存在(声明)和实际创建及分配内存(定义)。声明可以多次出现,而定义只能有一次。声明通常位于头文件中,定义则在源文件中。通过合理组织头文件和源文件,可以提高代码的模块化和可维护性。示例包括全局变量、局部变量、函数、结构体、联合体、数组、字符串、枚举和指针的声明与定义。
175 12
|
7月前
|
C语言
【C语言】全局搜索变量却找不到定义?原来是因为宏!
使用条件编译和 `extern` 来管理全局变量的定义和声明是一种有效的技术,但应谨慎使用。在可能的情况下,应该优先考虑使用局部变量、函数参数和返回值、静态变量或者更高级的封装技术(如结构体和类)来减少全局变量的使用。
98 5
|
7月前
|
算法 编译器 C语言
【C语言】C++ 和 C 的优缺点是什么?
C 和 C++ 是两种强大的编程语言,各有其优缺点。C 语言以其高效性、底层控制和简洁性广泛应用于系统编程和嵌入式系统。C++ 在 C 语言的基础上引入了面向对象编程、模板编程和丰富的标准库,使其适合开发大型、复杂的软件系统。 在选择使用 C 还是 C++ 时,开发者需要根据项目的需求、语言的特性以及团队的技术栈来做出决策。无论是 C 语言还是 C++,了解其优缺点和适用场景能够帮助开发者在实际开发中做出更明智的选择,从而更好地应对挑战,实现项目目标。
278 0
|
8月前
|
程序员 C语言 开发者
pymalloc 和系统的 malloc 有什么区别?
pymalloc 和系统的 malloc 有什么区别?
105 2
|
8月前
|
程序员 C语言 开发者
pymalloc 和系统的 malloc 有什么区别
pymalloc 和系统的 malloc 有什么区别
|
9月前
|
存储 安全 编译器
在 C++中,引用和指针的区别
在C++中,引用和指针都是用于间接访问对象的工具,但它们有显著区别。引用是对象的别名,必须在定义时初始化且不可重新绑定;指针是一个变量,可以指向不同对象,也可为空。引用更安全,指针更灵活。
|
9月前
|
存储 C语言
C语言:结构体与共用体的区别
C语言中,结构体(struct)和共用体(union)都用于组合不同类型的数据,但使用方式不同。结构体为每个成员分配独立的内存空间,而共用体的所有成员共享同一段内存,节省空间但需谨慎使用。
|
9月前
|
存储 C语言
【c语言】数据类型和变量
本文介绍了C语言中的数据类型和变量。数据类型分为内置类型和自定义类型,内置类型包括字符型、整型、浮点型等,每种类型有不同的内存大小和取值范围。变量分为全局变量和局部变量,它们在内存中的存储位置也有所不同,分别位于静态区和栈区。通过示例代码和图解,详细阐述了这些概念及其应用。
142 1