array
数组一、数组的概念数组是一种数据格式,可以存储多个同类型的值 数组是一种复合类型 数组的实质是申请一片连续的内存,存储同类型的变量 二、数组的声明一般形式: 12typeName arrayName[arraySize];数据类型 数组标识符["数组长度"]; 三、数组的“静态性”数组是一种静态的数据类型,体现在 数组长度必须是$\textcolor{red}{常量,字面值,表达式}$ (也就是编译过程中已知的数字,不能作动态定义) 数组长度必须是正整数 四、用索引访问数组元素数组索引从0到arraysize-1 123example: int array[10] = {0}; cout << array[0]; 这并不意味着,数组的第一个元素叫做第0个元素 事实上,数组索引是指针相对于数组第一个元素地址的偏移量 那么自然第一个元素的偏移量是0 索引是可以是变量,但必须是整数 由于数组名指向数组的第一个元素地址,而索引其实就是跳转到 12&array[i] = array + i * sizeof(int) /...
overload
函数的重载我们知道,一个理论提出,必然是为了解决一些问题,为了理解重载,必须先从遇到的问题出发 例如我们想实现这样一个功能 绝对值函数abs,传入一个参数,返回它的绝对值 这看上去很简单,但是,函数声明时,已经声明了函数需要传入参数的类型,如果声明为整型,那么输入浮点型时就会报错, 在C语言中,根据不同的数据类型,有多个绝对值函数fbs,abs,lbs 这无疑加重了记忆负担,那么,是否可以用一个函数实现这个功能呢? 这就引出了函数重载的概念 overloaded 以下是重载函数的一个实例 通过calculateVolume计算不同立体图形的体积 由于不同立体图形的体积计算方式不同,因此需要传入不同的参数,由此需要使用函数的重载 但是注意,它们的返回值是一样的 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647#include<iostream>#include<cmath>using namespace std;const double...
recurision
函数递归即函数内部调用自身,然后不停地寻找可以返回的值 因此递归必须要设置终止调用链 如使用if语句,在初始值处停止调用,return 初始值 下面是斐波那契数列的一个例子 12345678910int fibonacciRecurs(int a1,int a2,int n){ if(n == 1 || n == 2) { return a1; } int an = fibonacciRecurs(a1,a2,n-1) +fibonacciRecurs(a1,a2,n-2); return an;} 由于递归过程中每次函数内部的变量都会被重新初始化,因此可以考虑多传入参数 下面是求反转数字的例子 1234567891011int sum = 0;int reverseNumber(int n,int sum){ if(n>= 10) { sum = sum * 10 + n % 10; return...