美文网首页
指针/结构体

指针/结构体

作者: Sheik | 来源:发表于2021-07-26 00:17 被阅读0次

环境:ide:Mac+clion

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

指针常量和常量指针

    int a = 10;
    int b = 20;
    //常量指针
    const int *p1 = &a; //这里针对的是常量。 也就是a 的值不能修改。
   //* p1 = 20; 这个就是错误的。
   //p1 = &b; // 这就是对的。地址可以修改。

    //指针常量
    int * const p2 = &b;
    * p2 = 30;//正确的。 可以对值进行修改。
    //p2 = &a; //这个错误的。因为是指针常量,不能修改。
    const int * const p3 = &a;//即是常量指针也是指针常量。都不能进行二次修改。

使用指针遍历数组

    int arr[] = {1,2,3,4,5,6,7,8};
    int *p = arr;//将首地址赋值给指针
    cout << "首地址是:"<<p<<" 第一个值是:"<<*p<<endl;
    for (int i=0;i<sizeof (arr)/sizeof (*p);i++){
        cout << *p << " ";
        p++;
    }
    cout << endl;

通过指针(地址传递)来进行两个数进行交换

    int a = 10;
    int b = 20;
    //地址传递,在函数里面进行了地址从新赋值。
    swap1(&a,&b);
    cout << a << "," << b << endl;
    
    void swap1(int * x,int * y){
       int temp = *x;
       *x = *y;
       *y = temp;
    }

练习:定义一个数组,采用冒泡排序法来排序,用到了指针。

    int arr[] = {9, 8, 7, 6, 5, 4, 3, 2, 1, 0};
    int len = sizeof(arr) / sizeof(arr[0]);
    bubbleSort(arr, len);
    printArray(arr, len);
//冒泡排序
void bubbleSort(int *arr, int len) {
    for (int i = 0; i < len; i++) {
        for (int j = 0; j < len - 1 - i; j++) {
            if (arr[j] > arr[j + 1]) {
                int temp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = temp;
            }
        }
    }
}

//打印
void printArray(int *arr, int len) {
    for (int i = 0; i < len; i++) {
        cout << *arr << " ";
        arr++;
    }
    cout << endl;
}

结构体的定义以及使用


  struct Sdudent{
    string name;
    int age;
    int scores;

  }student; // 这里定义的时候就创建了student 变量。
  
    //结构体,自定义数据类型。
    struct Sdudent s1; //定义方式1 struct 关键字可以省略
    s1.name = "张三";
    s1.age = 20;
    s1.scores = 100;
    struct Sdudent s2 = {"李四",30,90};//定义方式2 关键字可以省略
    student.name = "王五"; // 定义结构体的时候,就创建了student的变量。
    student.age = 40;
    student.scores = 70;

    //结构体数组,以及遍历。
    struct Sdudent arr[] = {
            {"张三",10,30},
            {"李四",20,40},
            {"王五",30,50},

    };
    arr[2].name = "zane";
    for(int i=0;i<sizeof(arr)/sizeof(arr[0]);i++){
        cout << arr[i].name << "," << arr[i].age << "," << arr[i].scores << endl;
    }


相关文章

  • C语言20 结构体指针

    C语言20 结构体指针 探测结构体指针的特性 ++、-- 加法与减法 指针相减 使用结构体指针 结构体指针一定要指...

  • C语言-5、结构体

    写法一 写法二 写法三 结构体指针 结构体指针 与 动态内存开辟 结构体的数组 结构体与结构体指针 取别名 取别名...

  • 函数指针,联合体,枚举,结构体和结构体指针

    函数指针 联合体 枚举 别名 结构体 结构体指针

  • Go语言之结构体指针

    结构体本身属于值类型,可以通过指针操作结构体,编程引用类型的数据,通过new()创建指针 结构体指针

  • 6.结构体相关

    一 C 结构体和结构体指针 eg1: 一 结构体里面定义函数 通过结构体指针访问结构体里面定义的函数。 eg2:

  • 结构体的基本操作

    结构体定义和初始化 结构体变量相互赋值 结构体数组 结构体嵌套一级指针 结构体嵌套二级指针 结构体偏移量 联合体 ...

  • 结构体与结构体指针数组

    1.结构体定义与使用。 2.结构体指针 与 动态内存开辟。 3.结构体的数组。 4.结构体与结构体指针 取别名。 ...

  • 结构体操作

    1.动态创建一个结构体,里面有指针,为指针对象创建内存 结构体定义 释放结构体

  • runtime

    1、id、class指针 class指针只向objc_class结构体 id指针只向objc_object结构体 ...

  • Day10

    指针 指针与函数 练习回调函数 结构体 基本概念 结构体变量初始化 定义结构体变量 结构体变量作用域结论; 和变量...

网友评论

      本文标题:指针/结构体

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