• C语言实验十二 指针(二)


    一、实验目的

    (一)进一步理解指针的概念,掌握其在数组和字符串中的应用。

    (二)学会使用函数的指针和指向函数的指针变量。

    (三)了解指向指针的指针的概念及其使用方法。

    二、预习要求

    (一)字符、字符串和字符数组的关系与表示方法;

    (二)函数指针;

    (三)指向指针的指针。

    三、实验内容

    1、有如下程序段:

     int a=10,b=1,*p;  /*此处的*表示定义指针变量,而非间接运算符*/

       p=&a;

     a=*p+b;     /*此处的*表示间接运算符*/

    执行该程序段后,a的值为    11    

    1. #include "stdio.h"
    2. void main()
    3. {
    4. int a=10,b=1,*p;
    5. p=&a;
    6. a=*p+b;
    7. printf("a的值为:%d",a);
    8. }

    2、写出下列程序的运行结果:

    main()

    { int a[]={1,2,3};

      int *p,k;

      p=a;        /*将数组a的首地址送给指针变量p*/   

      for(k=0;k<3;k++)

      printf(“%d,%d,%d,%d\n”,a[k],p[k],*(p+k),*(a+k));              

    }

    注:通过该题,希望学生掌握数组元素与指向数组的指针的不同。a[k]表示数组中下标为k的元素。a[k]、p[k]、*(p+k)、*(a+k)都表示a[k];前两种是下标表示法,后两种是指针表示法。而a+k表示数组中第k个元素的地址。

    1. #include "stdio.h"
    2. void main()
    3. {
    4. int a[3]={1,2,3};
    5. int *p,k;
    6. p=a;
    7. for(k=0;k<3;k++)
    8. printf("%d %d %d %d\n",a[k],p[k],*(p+k),*(a+k));
    9. }

    3、以下程序是用指针变量输出a数组中的10个元素。

    1. #include "stdio.h"
    2. void main()
    3. {
    4. int a[10];
    5. int *p,k;
    6. p=a;
    7. printf("请输入十个数值:");
    8. for(k=0;k<10;k++)
    9. scanf("%d",p++);
    10. p=a;
    11. for(k=0;k<10;k++,p++)
    12. printf("%d ",*p);
    13. printf("\n");
    14. }

    4.下面程序的功能是输出a数组中的10个元素。

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

    5、编写程序实现如下功能:通过键盘,用指针输入10个元素的值,再通过指针计算各元素的平均值,输出平均值。

    1. #include "stdio.h"
    2. void main()
    3. {
    4. int as(int *p,int n);
    5. int a[10]={0,1,2,3,4,5,6,7,8,9};
    6. as(a,10);
    7. }
    8. int as(int *p,int n)
    9. {
    10. float i,aver,sum=0;
    11. for(i=0;i<10;i++,p++)
    12. {
    13. sum=sum+*p;
    14. }
    15. aver=sum/10;
    16. printf("输出平均值为:%f",aver);
    17. }

    四、实验注意事项

    注意数组的指针与数据元素值之间的关系。

  • 相关阅读:
    2023年MySQL-8.0.34保姆级安装教程
    1. Flink简述
    Java项目:SSM养老院综合服务系统
    音视频封装格式:MPTG2-TS
    Netty笔记
    科技云报道:云计算走向工业互联网“深水区”
    地震勘探——相关概念(一)
    对话PPIO边缘云联合创始人王闻宇,聊聊边缘计算与元宇宙
    VScode连接远程JupyterNotebook显示点云ply文件
    oracle19c单机应用补丁-缺少包导致失败
  • 原文地址:https://blog.csdn.net/qq_64314976/article/details/126123559