c++笔记3 函数,数组

1.函数

函数传参有三种,传值,传引用和传指针。

#include <iostream>

// 传值 值的传递,复制一份value, 下面main函数调用的时候只是把value复制了一份传过来
// 效率是低的
void swap_value(int x = 5, int y = 10) {
    int temp;
    temp = x;
    x = y;
    y = temp;

    return;
}

// 传引用, 下面main函数调用的时候,a,x   b, y 的数据是绑定在一起的
void swap_reference(int& x, int& y) {
    int temp;
    temp = x;
    x = y;
    y = temp;
    return;
}

// 类型 int float map vector 
// & * ** const static --> 饰词 
void swap_ptr(int* x, int* y){
    int temp = *x;
    *x = *y;
    *y = temp;
    return;
}

int main() {
    int a = 300, b = 500;
    // swap_value(a, b);   
    // std::cout << "swap_value value a is: " << a << std::endl;
    // std::cout << "swap_value value b is: " << b << std::endl;
    // swap_reference(a, b);
    // std::cout << "swap_reference value a is: " << a << std::endl;
    // std::cout << "swap_reference value b is: " << b << std::endl;
    swap_ptr(&a, &b);
    std::cout << "swap_ptr value a is: " << a << std::endl;
    std::cout << "swap_ptr value b is: " << b << std::endl;
    return 0;
}

2.数组

  • 所谓数组就是一个集合,里面存放了相同类型的数据元素,连续的内存位置组成的
  • 数组是可以写超的,设置的是10个,也可以遍历他第11个,他也能写出来,但是数值是不可控的
  • C++可以直接操作内存,C++是连续的内存,所以我们拿到的是后面的值
  • 不能像python一样全部展示出来

2.1 数组创建

void test() {
    // 1. 创建数组
    int arr1[5] = {1, 2, 3, 4, 5};

    // 2. 创建数组
    int arr2[5];
    for (int i = 0; i < 5; i++) {
        arr2[i] = i + 1;
    }

    // 3. 创建数组
    int arr3[] = {1, 2, 3, 4, 5};

    printf("valuevalue of arr1: %p\n", arr1);  // 数组名就是数组第一个元素的地址
    printf("address of arr1: %d\n", *arr1);
    printf("address of arr1+1: %d\n", *arr1+1);
    printf("address of arr1+2: %d\n", *arr1+2);
    printf("address of arr1+3: %d\n", *arr1+3);
    printf("address of arr1+4: %d\n", *arr1+4);
    
}

创建一个长度5的数组,重点关注打印输出,数组名就是数组的第一个元素的地址

2.2 打印数组的三种方式

# include <iostream>

void printArray1(int arr[], int len) {
    for (int i = 0; i < len; i++) {
        std::cout << arr[i] << " ";
    }
    std::cout << std::endl;
}

void printArray2(int arr[], int len) {
    int * p = arr; // 指向数组第一个元素的地址
    for (int i = 0; i < len; i++) {
        std::cout << *p++ << " ";
    }
    std::cout << std::endl;
}

void printArray3(int* arr, int len) {
    for (int i = 0; i < len; i++) {
        std::cout << *arr++ << " ";
    }
    std::cout << std::endl;
}

void test() {
    // 1. 创建数组
    int arr1[5] = {1, 2, 3, 4, 5};
    printArray1(arr1, 5);
    printArray2(arr1, 5);
    printArray3(arr1, 5);

}


int main() {

    test();

    return 0;
}

posted @ 2025-04-23 16:31  qinchaojie  阅读(16)  评论(0)    收藏  举报  来源