美文网首页
数组/函数/指针

数组/函数/指针

作者: Sheik | 来源:发表于2021-07-25 23:07 被阅读0次

环境:ide:Mac+clion

视频链接:
https://www.bilibili.com/video/BV1Hb411Y7E5?p=5

数组的定义

    int arr[5];//数组的定义,必须知道长度。
    for (int i=0;i<sizeof(arr)/sizeof (arr[0]) ;i++){//condition 数组的长度
        arr[i]= i;
        cout << arr[i];
    }
    cout << endl;

    int arr1[5] = {0,1,2,3,4};//第二种赋值方式。
    int arr2[] = {0,1,2,3,4};//数组的第三种赋值方式。

练习题:找出这个数组最大值

    int arr4[] = {800, 350, 200, 400, 900,250,600};
    int maxValue = arr4[0];
    for (int i =1;i<sizeof(arr4)/sizeof (arr4[0]);i++){
        if(maxValue < arr4[i]){
            maxValue = arr4[i];
        }
    }
    cout << maxValue << endl;

冒泡排序法,按照升序排列出来

    int arr[] = {4, 2, 8, 0, 5, 7, 1, 3, 9, 6};
    int tmpValue = arr[0];
    for (int i = 0; i < sizeof(arr) / sizeof(arr[0]); i++) {
        for (int j = 0; j < sizeof(arr) / sizeof(arr[0]) -1- i; j++) {
            if (arr[j] > arr[j + 1]) {
                tmpValue = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = tmpValue;
            }
        }

    }
    for (int i = 0; i < sizeof(arr) / sizeof(arr[0]); i++) {
        cout << arr[i];
    }

二维数组的定义

    int arr[2][3]; //两行三列,访问通过arr[0][0] 这是二维数组第一个元素。
    arr[0][0] =1;
    arr[0][1] =2;
    arr[1][0] =3;
    arr[1][1] =4;
    arr[1][2] =5;

    int arr2[2][3] = {
            {1,2,3},
            {4,5,6}
    }; //第二种定义方式

    for (int i = 0;i <2;i++){//行
        for (int j = 0;j <3;j++){//列
            arr2[i][j] = j ;
        }
    }
    for (int i = 0;i <2;i++){//行
        for (int j = 0;j <3;j++){//列
            cout<<arr2[i][j] << " ";
        }
        cout << endl;
    }
    int arr[2][3] = {
            {1,2,3},
            {4,5,6}
    };
    cout<<"二维数组占用内存空间大小:"<<sizeof (arr)<<endl;
    cout<<"二维数组一行占用内存空间大小:"<<sizeof (arr[0])<<endl;
    cout<<"二维数组一个元素占用内存空间大小:"<<sizeof (arr[0][0])<<endl;
    cout<<"二维数组首地址:"<<arr<<endl;
    cout<<"二维数组首地址:"<<&arr<<endl;
    cout<<"二维数组行数:"<<sizeof (arr)/sizeof (arr[0])<<endl;
    cout<<"二维数组列数:"<<sizeof (arr[0])/sizeof (arr[0][0])<<endl;

练习题:计算三个人的语文/数学/英语的分数总和案例:

    int scores[3][3] = {  //定义二维数组
            {100,100,100},
            {90,90,10},
            {80,70,60}
    };

    string names[] = {"张三","李四","王五"};
    for (int i=0;i<sizeof (scores)/sizeof (scores[0]);i++){
        int sum = 0;
        for (int j = 0 ;j<sizeof (scores[0])/sizeof (scores[0][0]);j++){
            sum += scores[i][j];
        }
        cout << names[i]<<"的分数总和是:"<<sum << endl;
    }

函数:c++ 是值传递

int add(int x,int y);//形参
int add (int x,int y){//形参
    return x + y;
}
  int a = 2;
   int b = 4;
   int c = add(a,b);
   cout << c;//6
//函数声明,告诉编译器有这么一个函数
int max(int, int);
//函数定义
int max(int x, int y) {
    return x >= y ? x : y;
}

函数分文件编写:
创建.h //用来写函数声明
创建cpp 文件 //函数定义, 引入.h头文件
在main 函数中,引入.h头文件,使用该函数即可。

指针

    //指针即是地址,通过*p 进行指针解引用,就是那个实际的值。
    int a = 10;
    int *p;//定义一个指针。
    p = &a;//对指针进行地址赋值。
    cout << "a的值是:"<<a<<endl;
    cout << "指针的地址是:"<<p<<endl;
    cout<<"a的地址是:"<<&a<<endl;
    cout<<"指针对应的值是:"<<*p<<endl;
    *p = 20;
    cout<<"指针对应的新值是:"<<*p<<endl;
    cout << "a的新值是:"<<a<<endl;

    //32位系统指针的内存是4,64位系统都是内存都是8
    int  a = 10;
    int * p = &a;
    cout << sizeof (p)<<endl;
    cout << sizeof (char *)<<endl;
    cout << sizeof (double *)<<endl;
    cout << sizeof (float *)<<endl;

    //空指针和野指针: 空指针用于给指针变量初始化,空指针是不允许进行访问的。
    // 0 -255 的内存编号是系统占用的,不能访问它。
    int * p1 = NULL;
    //cout << *p << endl; // 这里报错。

    //野指针,是指向的非法的地址。 避免出现野指针。
    p1 = (int *)0x1100;
    cout << *p1 << endl; // 这里报错。没权限访问。

相关文章

  • 函数指针

    概念: 指针函数, 函数指针, 指针数组, 数组指针, 指向数组的指针, 指向函数指针数组的指针。

  • C语言

    C 指针、指针变量、函数指针、指针函数、指针数组、数组指针、C 数组

  • 混淆知识点

    1、指针数组&数组指针、常量指针&指针常量、函数指针&指针函数 数组指针&指针数组 数组指针的定义 int (*p...

  • C语言-2、数组、函数

    数组定义 数组的指针、内存地址、取值 数组大小 函数指针 函数指针2 函数指针3

  • C:函数指针的坑

    关于该死的函数指针和指针函数 先来个目录 常量指针、指针常量 数组指针、指针数组 函数指针、指针函数 1、先看第一...

  • 数组指针/指针数组/函数指针/函数指针数组

    原文地址: 浅谈 数组指针 指针数组 函数指针 函数指针数组... 以及它们之间区别。 首先,先说明一个关系:数组...

  • 指针

    指针 数组指针和指针数组 函数指针和指针函数 指针作为参数 指针多用于处理值传递,减少值复制耗费的内存

  • 数组指针 指针数组 函数指针 指针函数

    指针数组:int *P[10] 首先p先和[]结合(因为[]的优先级高于*),首先它是一个数组,然后才是指针,所以...

  • 函数指针, 指针函数, 数组指针, 指针数组

    函数指针 重点是指针,存储的是地址,存储的函数的入口地址 指针函数 重点是函数,返回值是指针 数组指针 重点是指针...

  • 指针

    普通指针指针的指针 数组指针 函数指针

网友评论

      本文标题:数组/函数/指针

      本文链接:https://www.haomeiwen.com/subject/vfwimltx.html