c++笔记总结

 

9ee1f3c0d2b244e49b2b9d9f7ffaa40f.png

2bef844c132f4c1f8a400d33ba2c278a.png 

 

 

数组就是一个集合,里面存放了相同类型的数据元素

特点1:数组中的每个元素都是相同的数据类型
特点2:数组是由连续的内存位置组成的
2.一维数组

定义初始化

三种定义方式:
数据类型 数组名[数组长度];
数据类型 数组名[数组长度] = {值1,值2…};
数据类型 数组[ ] ={值1,值2…};


#include <iostream>
using namespace std;
int main()
{
    /*
    1. 数据类型 数组名[数组长度];    
    2. 数据类型 数组名[数组长度] = {值1,值2…};
    3. 数据类型 数组[ ] ={值1,值2…};
    */
    //1.数据类型 数组名[数组长度];
    int arr[5];
    //给数组元素赋值
    //数组下标从0开始索引
    arr[0] = 10;
    arr[1] = 20;
    arr[2] = 30;
    arr[3] = 40;
    arr[4] = 50;
    //访问数组元素
    for (int i = 0; i < 5; i++)
    {
        cout << arr[i] << ' ';
    }
    cout << "\n";

    //2. 数据类型 数组名[数组长度] = {值1,值2…};
    int arr2[5] = {10, 20, 30, 40, 50};
    //int arr2[5] ={10,20,30};初始化的时候,如果没有全部写完,会用0补全剩余数据
    //访问数组元素
    for (int i = 0; i < 5; i++)
    {
        cout << arr[i] << ' ';
    }
    cout << "\n";
    
    //3. 数据类型 数组[ ] ={值1,值2…};
    int arr3[] = {10, 20, 30, 40, 50, 60};
    for (int i = 0; i < 6; i++)
    {
        cout << arr3[i] << ' ';
    }
    cout << "\n";
    system("pause");
    return 0;
}

总结1:数组名的命名规范与变量名命名规范一致,不要和变量重名
总结2:数组中下标是从0开始索引
一维数组数组名

用途:
可以统计整个数组在内存中的长度 sizeof(arr)
可以获取数组在内存中的首地址 cout << arr << endl;
#include <iostream>
using namespace std;
int main()
{
    //1. 可以统计整个数组在内存中的长度     sizeof(arr)
    //2. 可以获取数组在内存中的首地址    cout << arr << endl;
    int arr[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9};
    cout << "整个数组内存空间为:" << sizeof(arr) << endl;
    cout << "每个元素占用的内存空间为:" << sizeof(arr[0]) << endl;
    cout << "数组中元素的个数为:" << sizeof(arr)/sizeof(arr[0]) <<endl;
    cout << "数组首地址为:"<< arr << endl;
    cout << "数组第一个元素的地址为:" << &arr[0] << endl;
    cout << "数组第二个元素的地址为:" << &arr[1] << endl;
    system("pause");
    return 0;
}
arr = 100;数组名是常量,不可以进行赋值操作

一维数组案例1:

五只小猪称体重
在一个数组记录了五只小猪的体重,如:int arr[5] = {300,350,200,400,250};找出并打印第几只小猪最重和小猪体重。

#include <iostream>
using namespace std;
int main()
{
    int arr[5] = {300, 350, 200, 400, 250};
    int max = 0;
    int flag;
    int n = sizeof(arr) / sizeof(arr[0]);
    for (int i = 0; i < n; i++)
    {
        if (arr[i] > max)
        {
            flag = i;
            max = arr[i];
        }
    }
    cout << "第" << flag + 1 << "只小猪最重,体重为:" << max << endl;
    system("pause");
    return 0;
}
一维数组案例2:

数组元素逆置
请声明一个5个元素的数组,并且将元素逆置,(如原数组为:1,3,2,5,4;逆置后输出结果为:4,5,2,3,1);

#include <iostream>
using namespace std;
int main()
{
    int arr[5] = {1, 3, 2, 5, 4};
    int start = 0;
    int end = sizeof(arr) / sizeof(arr[0])-1;
    int t;
    for (int i = 0; i < 5; i++)
    {
        cout << arr[i] << " ";
    }
    cout << "\n";
    while (start < end)
    {
        if (arr[start] < arr[end])
        {
            t = arr[start];
            arr[start] = arr[end];
            arr[end] = t;
            start++;
            end--;
        }
    }
    for (int i = 0; i < 5; i++)
    {
        cout << arr[i] << " ";
    }
    system("pause");
    return 0;
}
二维数组

定义:二维数组就是在一维数组上加了一个维度。

二维数组定义方式

数据类型 数组名[行数][列数];
数据类型 数组名[行数][列数]={{数据1,数据2},{数据3,数据4}};
数据类型 数组名[行数][列数]={数据1,数据2,数据3,数据4};
数据类型 数组名[ ][列数]={数据1,数据2,数据3,数据4};
以上四种定义方式,利用第二种更加直观,提高代码的可读性。
#include <iostream>
using namespace std;
int main()
{
    //二维数组定义方式:

    //1.数据类型 数组名[行数][列数];
     int arr[2][3];
    // arr[0][0] = 1;
    // arr[0][1] = 2;
    // arr[0][2] = 3;
    // arr[1][0] = 4;
    // arr[1][1] = 5;
    // arr[1][2] = 6;
    //外层循环打印行数,内层循环打印列数
    // for(int i=0;i<2;i++)
    // {
    //     for(int j=0;j<3;j++)
    //     {
    //         cout << arr[i][j] << " ";
    //     }
            // cout << "\n";
    // }

    //2.数据类型 数组名[行数][列数]={{数据1,数据2},{数据3,数据4}};
    int arr2[2][3]={{1,2,3},{4,5,6}};
    // for(int i=0;i<2;i++)
    // {
    //     for(int j=0;j<3;j++)
    //     {
    //         cout << arr2[i][j] << " ";
    //     }
    //     cout << "\n";
    // }

    //3.数据类型 数组名[行数][列数]={数据1,数据2,数据3,数据4};
    int arr3[2][3]={1,2,3,4,5,6};
    // for(int i=0;i<2;i++)
    // {
    //     for(int j=0;j<3;j++)
    //     {
    //         cout << arr2[i][j] << " ";
    //     }
    //     cout << "\n";
    // }

    //4.数据类型 数组名[    ][列数]={数据1,数据2,数据3,数据4};
    int arr4[][3]={1,2,3,4,5,6};
    // for(int i=0;i<2;i++)
    // {
    //     for(int j=0;j<3;j++)
    //     {
    //         cout << arr2[i][j] << " ";
    //     }
    //     cout << "\n";
    // }
    return 0;
}
总结:在定义二维数组时,如果初始化了数据,可以省略列数,行数不可省
二维数组数组名

查看二维数组所占内存空间
获取二维数组首地址
#include <iostream>
using namespace std;
int main()
{
    //二维数组数组名
    int arr[2][3] =
        {
            {1, 2, 3},
            {4, 5, 6}};
    //1.查看二维数组所占内存空间
    cout << "二维数组占用内存空间为: " << sizeof(arr) << endl;
    cout << "二维数组第一行占用内存空间为: " << sizeof(arr[0]) << endl;
    cout << "二维数组第一个元素占用内存空间为: " << sizeof(arr[0][0]) << endl;
    cout << "二维数组行数: " << sizeof(arr) / sizeof(arr[0]) << endl;
    cout << "二维数组列数: " << sizeof(arr[0]) / sizeof(arr[0][0]) << endl;
    //2.获取二维数组首地址
    cout << "二维数组首地址为: " << arr << endl;
    cout << "二维数组第一行首地址: "<< arr[0] << endl;
    cout << "二维数组第二行首地址: "<< arr[1] << endl;
    cout << "二维数组第一个元素的地址: "<< &arr[0][0] << endl;
    cout << "二维数组第二个元素的地址: "<< &arr[0][1] << endl;
    system("pause");
    return 0;
}
二维数组应用案例

考试成绩统计
有三名同学(张三,李四,王五),在一次考试中成绩分别如下表,请分别输出三名同学的总成绩。


#include <iostream>
using namespace std;
int main()
{
    int scores[3][3] = {
        {100, 100, 100},
        {90, 50, 100},
        {60, 70, 80}};
    string names[3] = {"张三", "李四", "王五"};
    int sum = 0;
    for (int i = 0; i < 3; i++)
    {
        sum = 0;
        for (int j = 0; j < 3; j++)
        {
            sum += scores[i][j];
        }
        cout << names[i] << "的总成绩为: " << sum << endl;
    }
    cout << "\n";
    system("pause");
    return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值