• 给一个数组赋1到10的初始值(指针)


    给一个数组赋1到10的初始值(指针)!

    指针对于大多数刚开始学习C语言的小白而言,并不陌生,指针,一个形象的代名词,阻碍了不知道多少的人对于C语言,C++的追求(包括笔者也一样)!但是这也仅仅只是刚开始时候,等到对指针的认识逐渐深入,又有了不少独特的认知!

    给一个数组赋1到10的初始值,这个问题在我们刚刚接触数组时候就已经有所涉及,但是到了指针层面,写法,含义,又有了不同的表示,下面请看笔者通过对比来进行详细解读!

    对于杠学习数组时候的代码:

    1. #include
    2. int main()
    3. {
    4. int arr[10] = { 0 };
    5. int i = 0;
    6. for (i = 0; i < 10; i++)
    7. {
    8. arr[i] = i + 1; //i由0到9;i+1由1到10 即将arr[]赋1到10的值
    9. printf("%d ", arr[i]); //打印arr[i]
    10. }
    11. return 0;
    12. }

    在这里面用了for循环,数组arr[10]的初始化,等,将数组进行赋值!现在对已经学习过数组的人而言已经简单化了,毕竟但是刚刚学习数组时候,感觉真难,现在想想,都是在不断进化,学习的路上!

    输出的结果 显而易见,清晰易懂!

     上述是笔者描述的关于学习数组时候所练习的代码,但是,现在已经学习到了指针模块,学习在进步,因此原先的代码,对于有不同的方法也要跟上!

    下面请看笔者用指针来对数组进行赋1到10的初始值:

    1. #include
    2. int main()
    3. {
    4. int arr[10] = { 0 };
    5. int i = 0;
    6. int* p = arr;
    7. for (i = 0; i < 10; i++)
    8. {
    9. *(p + i) = i + 1;
    10. printf("%d ", arr[i]);
    11. }
    12. return 0;
    13. }

    在该段代码里面: int* p = arr;   指针p指向数组arr,    arr是数组名,而数组名是数组首元素的地址:即相当于&arr[0];   因此在该句中:   *(p + i) = i + 1;   通过解引用操作符(*),来对arr进行解引用,而在for循环的条件下:i=0;i<10;i++     依次进行,因此将i+1赋值给数组!所以能够达到想要的目的结果!

    该段代码的运算结果如下所示:

     对于上述代码,经过改编部分代码片段:同理可得:

    1. #include
    2. int main()
    3. {
    4. int arr[10] = { 0 };
    5. int* p = arr;
    6. int i = 0;
    7. for (i = 0; i < 10; i++)
    8. {
    9. *p = i + 1;
    10. p++;
    11. printf("%d ", arr[i]);
    12. }
    13. return 0;
    14. }

    注意这个代码跟上述代码相比较,在for循环里面,发生了些许改编!

    将第一个for循环里面的  *(p + i) = i + 1;   改编为:     *p = i + 1;    p++;        其实这两者的表达意思是一样的,有异曲同工之处,因为这个是在for循环里面,经过i++,    i每一次都会+1,因此对于 : (p+i)  跟p++;有着一样的含义!

    因此代码的运行结果也是一样的!

     到此为止,笔者已经描述完,若有不足之处,请联系笔者进行更改!

  • 相关阅读:
    RocketMQ源码阅读(十三)Consumer-消息消费
    Burp插件HaE与Authz用法
    Springboot魅力乡村管理系统srb4s计算机毕业设计-课程设计-期末作业-毕设程序代做
    不知道10年老电脑如何重装系统?其实很简单
    activiti-spring-app-process 源码分析
    Direct3D光照
    【数据结构】链表的八种形态
    Flutter学习9 - http 中 get/post 请求示例
    学习心得——数据预处理(探索性数据分析)
    React Portals
  • 原文地址:https://blog.csdn.net/weixin_64308540/article/details/126210684