【嵌入式——C++】 数组与函数

【嵌入式------C++】 数组与函数

数组

C++ 支持数组数据结构,它可以存储一个固定大小的相同类型元素的顺序集合。数组是用来存储一系列数据,但它往往被认为是一系列相同类型的变量。

一维数组

声明数组

cpp 复制代码
//数据类型 数组名[数组长度] = {值1,值2};
type arrayName [ arraySize ];

double balance[10];

初始化数组

cpp 复制代码
数据类型 数组名[数组长度] = {值1,值2};
double balance[5] = {1000.0, 2.0, 3.4, 7.0, 50.0};

数组的访问

cpp 复制代码
for ( int i = 0; i < 5; i++ )
{
   cout << balance[i] << endl;
}
cpp 复制代码
int arr[5];
cout << "数组中元素个数为:" << sizeof(arr) / sizeof(arr[0]) << endl;
cout << "数组首地址:" <<(int)arr << endl;
cout << "数组中第一个元素地址:" <<(int)&arr[0] << endl;

二维数组

声明数组

cpp 复制代码
//数据类型 数组名[行数][列数];
int arra[2][3] =;

初始化数组

cpp 复制代码
int arra[2][3] = { {1,2,3},{4,5,6} };

数组的访问

cpp 复制代码
int arra[2][3] = { {1,2,3},{4,5,6} };
 for (int i = 0; i < 2; i++) {
  for (int j = 0; j < 3; j++)
  {
   cout << arra[i][j] << endl;
  }
 }

函数

函数是一组一起执行一个任务的语句。每个 C++ 程序都至少有一个函数,即主函数 main() ,所有简单的程序都可以定义其他额外的函数。

函数的定义

cpp 复制代码
return_type function_name( parameter list )
{
   body of the function
}
  • return_type:返回类型一个函数可以返回一个值。return_type 是函数返回的值的数据类型。有些函数执行所需的操作而不返回值,在这种情况下,return_type 是关键字 void。
  • function_name:函数名称,这是函数的实际名称。函数名和参数列表一起构成了函数签名。
  • parameter list:参数就像是占位符。当函数被调用时,您向参数传递一个值,这个值被称为实际参数。参数列表包括函数参数的类型、顺序、数量。参数是可选的,也就是说,函数可能不包含参数。
  • body of the function:函数主体包含一组定义函数执行任务的语句。
cpp 复制代码
#include "Swap.h"

void swap(int a, int b) {
 int temp = a;
 a = b;
 b = temp;
 cout << "a=" << a << endl;
 cout << "b=" << b << endl;
}

函数声明

函数的声明可以多次,但是函数的定义只能有一次。函数要放在main()方法之上,或者是在main()方法之上提前进行声明.

cpp 复制代码
void swap(int a, int b);

函数调用

cpp 复制代码
// 函数声明
int max(int num1, int num2);
 
int main ()
{
   // 局部变量声明
   int a = 100;
   int b = 200;
   int ret;
 
   // 调用函数来获取最大值
   ret = max(a, b);
 
   cout << "Max value is : " << ret << endl;
 
   return 0;
}
 
// 函数返回两个数中较大的那个数
int max(int num1, int num2) 
{
   // 局部变量声明
   int result;
 
   if (num1 > num2)
      result = num1;
   else
      result = num2;
 
   return result; 
}

函数参数

传值调用

向函数传递参数的传值调用方法,把参数的实际值复制给函数的形式参数。在这种情况下,修改函数内的形式参数不会影响实际参数。

cpp 复制代码
// 函数定义
void swap(int x, int y)
{
   int temp;
 
   temp = x; /* 保存 x 的值 */
   x = y;    /* 把 y 赋值给 x */
   y = temp; /* 把 x 赋值给 y */
  
   return;
}


int main ()
{
   // 局部变量声明
   int a = 100;
   int b = 200;
 
   cout << "交换前,a 的值:" << a << endl;
   cout << "交换前,b 的值:" << b << endl;
 
   // 调用函数来交换值
   swap(a, b);
 
   cout << "交换后,a 的值:" << a << endl;
   cout << "交换后,b 的值:" << b << endl;
 
   return 0;
}

//交换前,a 的值: 100
//交换前,b 的值: 200
//交换后,a 的值: 100
//交换后,b 的值: 200

指针调用

向函数传递参数的指针调用方法,把参数的地址复制给形式参数。在函数内,该地址用于访问调用中要用到的实际参数。这意味着,修改形式参数会影响实际参数。

cpp 复制代码
// 函数定义
void swap(int *x, int *y)
{
   int temp;
   temp = *x;    /* 保存地址 x 的值 */
   *x = *y;        /* 把 y 赋值给 x */
   *y = temp;    /* 把 x 赋值给 y */
  
   return;
}

int main ()
{
   // 局部变量声明
   int a = 100;
   int b = 200;
 
   cout << "交换前,a 的值:" << a << endl;
   cout << "交换前,b 的值:" << b << endl;

   /* 调用函数来交换值
    * &a 表示指向 a 的指针,即变量 a 的地址 
    * &b 表示指向 b 的指针,即变量 b 的地址 
    */
   swap(&a, &b);

   cout << "交换后,a 的值:" << a << endl;
   cout << "交换后,b 的值:" << b << endl;
 
   return 0;
}

//交换前,a 的值: 100
//交换前,b 的值: 200
//交换后,a 的值: 200
//交换后,b 的值: 100

引用调用

向函数传递参数的引用调用方法,把引用的地址复制给形式参数。在函数内,该引用用于访问调用中要用到的实际参数。这意味着,修改形式参数会影响实际参数。

cpp 复制代码
// 函数定义
void swap(int &x, int &y)
{
   int temp;
   temp = x; /* 保存地址 x 的值 */
   x = y;    /* 把 y 赋值给 x */
   y = temp; /* 把 x 赋值给 y  */
  
   return;
}
int main ()
{
   // 局部变量声明
   int a = 100;
   int b = 200;
 
   cout << "交换前,a 的值:" << a << endl;
   cout << "交换前,b 的值:" << b << endl;
 
   /* 调用函数来交换值 */
   swap(a, b);
 
   cout << "交换后,a 的值:" << a << endl;
   cout << "交换后,b 的值:" << b << endl;
 
   return 0;
}

//交换前,a 的值: 100
//交换前,b 的值: 200
//交换后,a 的值: 200
//交换后,b 的值: 100

函数的分文件编写

创建后缀名为.h的头文件

cpp 复制代码
#include <iostream>
using namespace std;

void swap(int a, int b);

创建后缀名为.cpp的源文件

cpp 复制代码
#include "Swap.h"

void swap(int a, int b) {
 int temp = a;
 a = b;
 b = temp;
 cout << "a=" << a << endl;
 cout << "b=" << b << endl;
}

在头文件中写函数的声明,在源文件中写函数的定义。

cpp 复制代码
#include "Swap.h"
swap(10,25);
相关推荐
环能jvav大师9 分钟前
基于R语言的统计分析基础:使用SQL语句操作数据集
开发语言·数据库·sql·数据分析·r语言·sqlite
吱吱鼠叔12 分钟前
MATLAB方程求解:1.线性方程组
开发语言·matlab·php
Antonio91517 分钟前
【CMake】使用CMake在Visual Studio内构建多文件夹工程
开发语言·c++·visual studio
LyaJpunov31 分钟前
C++中move和forword的区别
开发语言·c++
程序猿练习生35 分钟前
C++速通LeetCode中等第9题-合并区间
开发语言·c++·leetcode
z千鑫44 分钟前
【人工智能】如何利用AI轻松将java,c++等代码转换为Python语言?程序员必读
java·c++·人工智能·gpt·agent·ai编程·ai工具
一名路过的小码农1 小时前
C/C++动态库函数导出 windows
c语言·开发语言·c++
m0_631270401 小时前
标准c语言(一)
c语言·开发语言·算法
万河归海4281 小时前
C语言——二分法搜索数组中特定元素并返回下标
c语言·开发语言·数据结构·经验分享·笔记·算法·visualstudio
Messiah___1 小时前
【论文阅读】Slim Fly: A Cost Effective Low-Diameter Network Topology 一种经济高效的小直径网络拓扑
开发语言·php