大一学习C++记录的笔记(一同记录到了(1)中)

二维数组

二维数组就是在一维数组的基础上,多加一个维度

就是一维数组只有行的属性,二维数组比一维数组增加了一个列的属性,通常是以矩阵的形式呈现

二维数组的定义方式

1、数据类型 数组名[ 行数 ] [ 列数 ];
2、数据类型 数组名[ 行数 ] [ 列数 ] = { {1,2}, {3,4} };
3、数据类型 数组名[ 行数 ] [ 列数 ] = { 1,2,3,4 };
4、数据类型 数组名[][ 列数 ] = { 1,2,3,4 };
例如第一种方法

#include<iostream>
using namespace std;
int main()
{
	int arr[3][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;
    arr[2][0]=7;
    arr[2][1]=8;
    arr[2][2]=9;
    cout<<arr[0][0]<<endl; // 访问数组元素,适合元素数量较少的情况
    cout<<arr[0][1]<<endl; // 当元素数量过多时,可以使用嵌套for循环
    cout<<arr[0][2]<<endl;
    return 0;
}

第二种方法(代码可读性更强)

#include<iostream>
using namespace std;
int main()
{
	int arr[3][3] =          // 创建二维数组
    {
        {1,2,3},
        {4,5,6},
        {7,8,9}
    };
    for(int i=0;i<3;i++)     // 遍历数组元素
    {
        for(int j=0;j<3;j++)
        {
            cout<<arr[i][j]<<endl;
        }
    }
    return 0;
}

第三种方法

#include<iostream>
using namespace std;
int main()
{
	int arr[3][3] = {1,2,3,4,5,6,7,8,9};
    for(int i=0;i<3;i++)
    {
        for(int j=0;j<3;j++)
        {
            cout<<arr[i][j]<<" ";
        }
        cout<<endl;
    }
    return 0;
}

第四种方法

#include<iostream>
using namespace std;
int main()
{
    int arr[][3] = {1,2,3,4,5,6,7,8,9};  // 计算机能自动识别出行数
    for(int i=0;i<3;i++)
    {
        for(int j=0;j<3;j++)
        {
            cout<<arr[i][j]<<" ";
        }
        cout<<endl;
    }
    return 0;
}

名称用途

1、查看二维数组所占内存空间
2、获取二维数组的首地址
用途1

#include<iostream>
using namespace std;
int main()
{
    int arr[3][3]=
    {
        {1,2,3},
        {4,5,6},
        {7,8,9}
    };
    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;
    return 0;
}

用途2

#include<iostream>
using namespace std;
int main()
{
    int arr[3][3]=
    {
        {1,2,3},
        {4,5,6},
        {7,8,9}
    };
    cout<<"二维数组的首地址为:"<<arr<<endl;
    cout<<"二维数组第一行的首地址为:"<<arr[0]<<endl;
    cout<<"二维数组第一个数据的首地址为:"<<&arr[0][0]<<endl;
    return 0;
}

案例

输出这三名学生的成绩

语文数学英语
李明1008090
李华9010080
小明8090100
#include<iostream>
#include<string>
using namespace std;
int main()
{
    int scores[3][3]=   //创建二维数组
    {
        {100,80,90},
        {90,100,80},
        {80,90,100}
    };
    string name[3] = {"李明","李华","小明"};  //创建名字数组
    for(int i=0;i<sizeof(scores)/sizeof(scores[0]);i++)
    {
        int sum=0; // 初始化总分变量
        for(int j=0;j<sizeof(scores)/sizeof(scores[0]);j++)
        {
            sum+=scores[i][j];
        }
        cout<<name[i]<<"的总分为:"<<sum<<endl;
    }
    return 0;
}

 函数

概述

作用:将一段经常使用的代码封装起来,减少重复代码,提高代码可读性

定义

函数定义一般有五个步骤:
1、函数返回值的类型
2、函数名称
3、参数列表
4、函数体语句
5、return表达式
具体到语法中为(伪代码):

返回值类型 函数名( 参数列表 )
{
    函数体语句;

    return表达式;
}

例子(传入两个整形数据,返回相加的结果)

#include<iostream>
using namespace std;
int add(int num1,int num2)
{
    int sum=num1+num2;
    return sum;
}

函数的调用

使用已经定义好的函数

#include<iostream>
using namespace std;
int add(int num1,int num2)   // 形参
{
    int sum=num1+num2;
    return sum;
}
int main()
{
    int a=10,b=20;
    int c=add(a,b);    // 实参
    cout<<c<<endl;
    return 0;
}

函数定义中小括号里面的参数是形参,函数调用时传入的参数是实参

函数的值传递

值传递就是函数在调用时实参将数值传入给形参
值传递的过程中形参改变也不会影响实参
void是空类型,当函数不需要返回值的时候可以使用

#include<iostream>
using namespace std;
void swap(int num1,int num2)
{
    cout<<"交换前:"<<endl;
    cout<<"num1="<<num1<<endl;
    cout<<"num2="<<num2<<endl;
    int temp = num1;
    num1 = num2;
    num2 = temp;
    cout<<"交换后:"<<endl;
    cout<<"num1="<<num1<<endl;
    cout<<"num2="<<num2<<endl;
}
int main()
{
    int a=1,b=2;
    cout<<"a="<<a<<endl;
    cout<<"b="<<b<<endl;
    swap(a,b);
    cout<<"a="<<a<<endl;
    cout<<"b="<<b<<endl;
    return 0;
}
/*
运行结果如下所示,可知值传递的过程中,并没有改变a,b本身的值
a=1
b=2
交换前:
num1=1
num2=2
交换后:
num1=2
num2=1
a=1
b=2
*/

函数的声明

在函数定义之前,声明其存在
即把main()函数写到程序的最前方时,需要用到后续未写的函数时使编译器不报错

#include<iostream>
using namespace std;
int main()
{
    int max(int a,int b);   // 函数的声明,不写声明就调用的话会报错
    int a=100,b=200;
    cout<<"max="<<max(a,b)<<endl;
    return 0;
}
int max(int a,int b)
{
    if(a>b)
    return a;
    else
    return b;
    // 或者使用三目运算符 return a>b?a:b;
}

函数的声明可以写很多次(但是写一次就足够了),但是定义只能定义一次

函数的分文件编写

作用:当代码量很大时,让代码结构更清晰
步骤:
1、创建后缀名为.h的头文件
2、创建后缀名为.cpp的源文件
3、在头文件中写函数声明
4、在源文件中写函数定义

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值