C++自学笔记004

    科技2022-08-29  93

    C++自学笔记004

    函数 指针

    #include <iostream> using namespace std; //#include <swap.h> //自定义函数必须加入相应的头文件 //例子:加法函数add int add(int sum1, int sum2) { int sum = sum1 + sum2; return sum; } //例子:交换数值函数chenge; void chenge(int num1, int num2) { int temp; temp = num1; num1 = num2; num2 = temp; } void swap01(int *p01, int *p02) { int temp1 = *p01; *p01 = *p02; *p02 = temp1; } int main() { /* 1、函数格式: 返回值类型 函数名(参数列表) { 函数体语句; return 表达式; } 2、值传递 当没有返回值的时候,函数参数类型可以填void 函数没有返回值的时候,return语句可省略不写,或者只写一个return; 进行值传递的时候,形参发生的任何改变都不会影响实参的改变 3、函数类型分类:(1)无参无返(2)无参有返(3)有参无返(4)有参有返 4、函数的声明 声明可以有多次,函数定义只能有一次 尽量将函数放在main函数后面,在main函数之前先声明函数的存在(格式:函数参数类型 函数名 (参数列表);) 5、函数的分文件编写 四个步骤:(1)穿件后缀名为.h的头文件 (2)创建后缀名为.cpp的源文件 (3)在头文件中写函数的声明 (4)在源文件中写函数的定义 */ int num1, num2, num; cout << "青输入两个整数:" << endl; cin >> num1; cin >> num2; num = add(num1, num2); cout << "两个整数的和:" << num << endl; chenge(num1, num2); cout << "num1 = " << num1 << endl; cout << "num2 = " << num2 << endl; //change(num1, num2); //指针: //1、定义一个指针 int a1 = 10; //指针定义的格式:数据类型 * 指针变量名; int * p; p = &a1; cout << "a1的地址是:" << &a1 << endl; cout << "指针p为:" << p << endl; //2、使用指针 //可以通过解引用来找到指针指向内存的内容 //指针前加 * 代表解引用,找到指针指向的内存中的数据 *p = 1000; cout << "a1 = " << a1 << endl; cout << "*p = " << *p << endl; //3、指针所占内存:32位操作系统:4个字节;64位操作系统:4个字节 int * p1 = &a1; //一种简便的指针定义语句 cout << "sizeof (int *) = " << sizeof(int *) << endl; cout << "sizeof (float *) = " << sizeof(float *) << endl; cout << "sizeof (double *) = " << sizeof(double *) << endl; cout << "sizeof (char *) = " << sizeof(char *) << endl; //空指针:指针变量指向内存中编号为0的空间 //用途:用于初始化指针变量(一开始不知道指针指向谁,就只想NULL) //空指针不可以进行访问 //0~255之间的内存编号是系统占用的,因此不可以进行访问 //定义一个空指针 int * p6 = NULL; //野指针:指针指向非法的内存空间,在编程中应该尽量避免 //4、const修饰指针 int a2 = 10; int a3 = 20; //(1)常量指针 const int * p2 = &a; //特点:指针的指向可以修改,但是指针指向的值不可以变 //*p2 = 20; 错误,指针指向的值不可以改; //p2 = &a2; 正确,指针指向可以改。 //(2)指针常量 int * const p3 = &a; //特点:指针的指向不可以变,指针指向的值可以改 //*p = 20; 正确,指针的只可以变 //p = &a3; 错误,指针指向不可以改 //(3)const即修饰指针,又修饰常量 const int * const p4 = &a2; //特点:指针的指向和指针指向的值都不可以改 //*p = 20; 错误 //p = &a3; 错误 //5、利用指针访问数组中的元素: int arr[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; //定义一个数组 int *p5 = arr; //arr就是数组地址 cout << "利用指针访问第一个元素:" << *p5 << endl; //p5++; //让指针向后偏移4个字节 cout << "利用指针访问第二个元素:" << *p5 << endl; //利用指针遍历数组 for(int i = 0; i < 10; i++) { //cout << arr[i] << endl; cout << *p5 << endl; p5++; } //利用指针作为函数的参数值,可以修改实参数值 //值传递(略) //地址传递 int b1 = 10; int b2 = 20; swap01(&b1, &b2); cout << "b1 = " << b1 << endl; cout << "b2 = " << b2 << endl; system("pause"); return 0; }
    Processed: 0.014, SQL: 9