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;
}

浙公网安备 33010602011771号