610's Algorithm Teaching

函数与数组

函数基础

函数是一段可重用的代码块,用于执行特定任务。函数可以提高代码的可读性和可维护性。

// 函数定义示例
int add(int a, int b) {
    return a + b;
}

void greet(string name) {
    std::cout << "你好," << name << "!" << std::endl;
}

int main() {
    int result = add(5, 3);
    std::cout << "5 + 3 = " << result << std::endl;
    greet("张三");
    return 0;
}

函数参数

函数可以接受不同类型的参数,包括值传递、引用传递等。

// 值传递
void swapByValue(int a, int b) {
    int temp = a;
    a = b;
    b = temp;
}

// 引用传递
void swapByReference(int& a, int& b) {
    int temp = a;
    a = b;
    b = temp;
}

// 默认参数
void printMessage(string message, int count = 1) {
    for (int i = 0; i < count; i++) {
        std::cout << message << std::endl;
    }
}

函数重载

函数重载允许定义多个同名函数,只要它们的参数列表不同。

// 函数重载示例
int max(int a, int b) {
    return (a > b) ? a : b;
}

double max(double a, double b) {
    return (a > b) ? a : b;
}

int max(int a, int b, int c) {
    return max(max(a, b), c);
}

数组基础

数组是存储相同类型元素的集合,通过索引访问元素。

// 数组声明和初始化
int numbers[5]; // 声明一个包含5个整数的数组
int scores[] = {90, 85, 78, 92, 88}; // 初始化数组
double prices[3] = {10.5, 20.3, 15.8};

// 访问数组元素
std::cout << "第一个分数:" << scores[0] << std::endl;
std::cout << "第三个分数:" << scores[2] << std::endl;

// 遍历数组
for (int i = 0; i < 5; i++) {
    std::cout << scores[i] << " ";
}
std::cout << std::endl;

数组作为函数参数

数组可以作为参数传递给函数,传递的是数组的首地址。

// 数组作为函数参数
void printArray(int arr[], int size) {
    for (int i = 0; i < size; i++) {
        std::cout << arr[i] << " ";
    }
    std::cout << std::endl;
}

int sumArray(int arr[], int size) {
    int sum = 0;
    for (int i = 0; i < size; i++) {
        sum += arr[i];
    }
    return sum;
}

二维数组

二维数组是数组的数组,用于表示表格或矩阵数据。

// 二维数组示例
int matrix[3][3] = {
    {1, 2, 3},
    {4, 5, 6},
    {7, 8, 9}
};

// 访问二维数组元素
std::cout << "中心元素:" << matrix[1][1] << std::endl;

// 遍历二维数组
for (int i = 0; i < 3; i++) {
    for (int j = 0; j < 3; j++) {
        std::cout << matrix[i][j] << "\t";
    }
    std::cout << std::endl;
}

字符串数组

字符串数组可以存储多个字符串,常用于处理文本数据。

// 字符串数组示例
string fruits[] = {"苹果", "香蕉", "橙子", "葡萄"};

// 遍历字符串数组
for (int i = 0; i < 4; i++) {
    std::cout << fruits[i] << std::endl;
}

学习建议

  • 理解值传递和引用传递的区别
  • 掌握函数重载的使用场景
  • 注意数组的边界,避免越界访问
  • 学会使用数组作为函数参数
  • 理解二维数组的内存布局
返回C++教程