欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

c++知识点汇总

程序员文章站 2022-07-12 15:41:17
...

数组

数组声明:typename arrayname[size] = {value1,value2,..};元素个数必须是一个大于0的整型常量,数据类型可以是任意有效的C++数据类型。其中size可以省略,则数组大小和初始化变量个数相同,如int arr[] = {1,2,3};初始化可以省略,如int arr[3];

数组访问:arrayname[num];实现修改,查看;

//声明
int a[4];
int b[3] = {1,2,3};
int i;
std::cin>>i;
int c[i];//会报警告

//赋值
int a[4] = {1,2,3};//a[4] = 0
int b[2];
b[0]=1;
b[1] =2;
int c[100];
for(int i = 0; i < 100; i++)
    c[i] = i+i; 

数组特点:必须是在一块连续的内存空间;数组中的每个元素类型相同。

二维数组:
typename arrayname[size][size]={{},{},...};

int a[3][4] = {
        {0, 1, 2, 3},   /*  初始化索引号为 0 的行 */
        {4, 5, 6, 7},   /*  初始化索引号为 1 的行 */
        {8, 9, 10, 11}, /*  初始化索引号为 2 的行 */
};

等价与 int a[3][4] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}; 即嵌套的括号是可选的。

—使用new关键字创建二维数组:

    //申请
    int** a = new int*[rows];
    for(int i=0;i<rows;i++)
        a[i] = new int[columns];
    //释放
    for(int i=0;i<rows;i++)
        delete []a[i];
    delete []a;

数组与指针:数组名是一个指向数组中第一元素的常量指针(int const *p;),即数组第一个元素的地址;

int const *p;
int arr[9];
p=arr;

数组的另一种访问方式:
------使用地址访问:*(arr+3)等价与arr[3]

如何将数组传递给函数?
—常用方式是将数组和数组大小分别传递,即

void func(int *arr, int size);//数组传递是地址传递,但传递得只是数组的首地址;
//若不传递数组大小,则在函数内部sizeof(arr) 只是一个int型的大小==4;

如何将数组传递出函数?

int * func();//注意事项:不能返回局部变量的地址;非要返回局部变量,可以将局部变量声明成static
{
	static int arr[10]
	...
	return arr;
}

创建数组的其他方法?
—使用new ,delete 关键字,即

int *arr = new int[3];
delete [] arr;

注意事项:
—在数组声明时,只能使用常量值,不能使用变量值,即

int arr[4];
int num=4;
int array[num]; //会报错

—若非要使用变量值,则可以将其声明(强制转换)为const

int  num = 10;
int array[(const int)num];
相关标签: 编程语言 c++