第八百次重修指针之脑明白指针常量,常量指针

      一、指针         

         指针(Pointer)是编程语言中的一个对象。利用地址,它的值直接指向(points to)存在电脑存储器中另一个地方的值。由于通过地址能找到所需的变量单元,可以说,地址指向该变量单元。因此,将地址形象化的称为“指针”。意思是通过它能找到以它为地址的内存单元;

举例说明:

    int a = 10;
    int * p = &a;

    cout << "a = " << a << endl;
    cout << "指针p指向的地址存入了"<<*p<<endl;
    cout << "指针p指向的地址为" << p << endl;

创建指针变量p指向int型变量a的地址,即指针变量p内存入的是a对应的内存地址,可以根据p内存入的内存地址访问a;

运行结果如下:

二、常量指针

        指针前加了const修饰,表示为常量指针,指针的指向可以修改,但是指向的值不可以通过该指针修改;例如:

    int a = 10;
    int b = 10;
    const int * p = &a;    //常量指针;指针指向可以修改,但指向的值不可以改;

    p = &b;   //合法,指针重新指向b;
    *p = 20;  //非法,通过指针p无法直接修改变量a对应内存中的值;

三、指针常量

        在变量前加了const修饰,表示为指针常量,指向不可以修改,但是指针指向值可以修改;

    int a = 10;
    int b = 10;
    int * const p = &a;    //常量指针;指针指向可以修改,但指向的值不可以改;

    p = &b;   //非法,指针不可重新指向b;
    *p = 20;  //合法,通过指针p直接修改变量a对应内存中的值;


    四、总结

        const意为常量,当const放在指针,即int * 前时,表明为指针常量,即指针变量的值无法修改,但是指向可以修改;当放在指针变量p前时,表明p指向的地址为常量,也就是指向不可以修改,但是可以修改该地址的值;

        或许可以这么记,const放在*p前,而*表示取内容,表明指向的内容无法修改;而p前表明指针无法修改,也就是指针指向的位置无法修改;

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
好的,针对您的问题,我可以给您提供一些思路和参考。 首先,创建视图需要重修的名单,需要根据具体的数据表和业务需求进行设计,以下是一种可能的设计思路: 1. 首先,需要有一个数据表或者视图,记录所有需要重修的学生信息,包括学生姓名、学号、课程名称、课程成绩、是否需要重修等信息。 2. 基于这个数据表,可以使用 SQL 语句创建一个视图,统计所有需要重修的学生信息,例如: ```sql CREATE VIEW view_re_exam AS SELECT student_name, student_id, course_name, course_score FROM student_score WHERE re_exam = 'Y'; ``` 这个视图会返回所有需要重修的学生信息,包括学生姓名、学号、课程名称和课程成绩。 3. 根据具体的业务需求,可以在这个视图上进一步进行统计和分析,例如: - 统计每个学生需要重修的科目数目,并按照从多到少的顺序排序: ```sql SELECT student_name, COUNT(*) AS re_exam_count FROM view_re_exam GROUP BY student_name ORDER BY re_exam_count DESC; ``` - 统计每个科目需要重修的学生数目,并按照从多到少的顺序排序: ```sql SELECT course_name, COUNT(*) AS re_exam_count FROM view_re_exam GROUP BY course_name ORDER BY re_exam_count DESC; ``` - 统计每个年级需要重修的学生数目,并按照从多到少的顺序排序: ```sql SELECT SUBSTR(student_id, 1, 2) AS grade, COUNT(*) AS re_exam_count FROM view_re_exam GROUP BY grade ORDER BY re_exam_count DESC; ``` 以上是一些基本的设计思路和 SQL 示例,具体实现需要根据您的具体业务需求和数据结构进行调整和优化。希望能对您有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值