第十一章指针二

 

一、大纲

1.        理解指针与一维数组的关系,掌握它们的使用

2.        掌握指针作为函数参数的使用

二、实验目标:

1.   掌握使用指针访问一个数组的元素,以及通过指针与整数的运算,完成在数组元素间的移动。

2.   掌握指针变量和数组名的区别和关系,以及使用数组名进行元素的访问。

三、实验方式:

要求学生自己独立完成。

四、任务

4.1任务1:指针与数组(时间:30分钟)

4.1.1 任务描述

      定义一个包含5个元素的double类型的数组salarys,初始值为:

 

(1)     使用for循环将数组中元素的值依次打印出来,中间用逗号隔开。

(2)     显示数组中第一个元素的地址。

(3)     显示整个数组的首地址。

(4)     显示数组中最后一个元素的地址。

(5)     使用数组名加索引值(数字)的方式显示数组中最后一个元素的地址。

(6)     定义一个double类型的指针head,让它指向数组salarys中的第一个元素。

(7)     定义一个double类型的指针tail,让它指向数组salarys中的最后一个元素。

(8)     分别显示指针变量headtail的值。

(9)     分别显示指针变量headtail所指向内容的值。

(10)  运用指针间的减法运算,显示指针tailhead做减法运算的结果。

(11)  通过指针head将数组中第一个元素的值减50,并显示运算后该元素的值。

(12)  head通过与整数的加法运算,使其指向数组中的第三个元素。

(13)  通过指针head显示数组中第三个元素的值。

(14)  head重新指向数组中的第一个元素,并使用指针head依次输出数组中的所有元素。

(15)  使用循环语句,通过指针tail按照倒序的格式输出数组中元素的值。

double salarys[5] = { 1500, 2000.43, 1202.78, 8000.32, 5000 };

    int i = 0;

    for (i = 0; i < 5; i++) {

        printf("%6.2lf\n", salarys[i]);

    }

    int *p;

    p = &salarys;

    int *m;

    m = &salarys[0];

    printf("%x\n", p);

    printf("%x\n", m);

    int *n;

    n = &salarys[4];

(1)     printf("%x\n", n);

printf("%x\n",&salarys[4]);

    double *head;

    head= &salarys;

    double *tail = &salarys[4];

    printf("%x\n", head);

    printf("%x\n", tail);

    printf("%6.2lf\n", *head);

(2)     printf("%6.2lf\n", *tail);

printf("%x\n", tail-head);

    *head=salarys[0]-50;

    printf("%6.2lf\n", *head);

    printf("%6.2lf\n", *head+6550.32);

    //head=salarys[3];

    head=&salarys;

    for(i=0;i<5;i++){

        printf("%6.2lf\n",*(head+i));

    }

(16)   

4.1.2 任务目的

(1)     掌握数组的概念、定义、初始化、访问等操作。

(2)     掌握数组名的含义:指针常量、数组首地址、数组第一个元素的地址。

(3)     掌握指针与整数进行加减法运算的使用(在指针指向数组元素时,表现为指针在数组元素间的移动)。

(4)     掌握使用指针间接修改所指向变量的值。

(5)     掌握指针间做减法运算的作用:返回为指针间的元素个数。

4.1.3 任务要求

(1)     将每一条子任务有语句表示。添加注释信息表示是第几条子任务。</

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值