计算机程序设计c++ 8-1:数组与指针

一维数组的指针

数组占据内存中一块连续的存储空间,每个数组元素都有
确定的内存地址
可通过定义指向数组元素类型的指针变
量,间接访问数组中的各个元素

C++语言规定,数组名代表数组的首地址(即数组中第一个
元素的地址),它是一个常量指针

如:int a[10], *p=a;
说明a是一个整型数组,p是一个整型的指针变量,且p指
向a数组,其中a为数组名,代表数组的首地址,即&a[0]

指针类型的算术和关系运算

指针的算术运算
  • 指针±整数 ==》指针
    在这里插入图片描述

假设:int a[10]={10,20,30},*p=a
p+i:表示p所指元素之后的第i个元素的指针
p-i:表示p所指元素之前的第i个元素的指针

int a[10] = {10, 20, 30}
int *p = a;
int i;
cout << *p << endl;  // 10
p++;  // p 指向a[1]
cout << *p << endl;  // 20
p++;  // p 指向a[2] 
cout << *p << endl;  // 30

注意
指针的算术运算与数学中运算不同。如 p的初值为a[0]的址,即1000, 执行p++后,p将指向a[1]元素,这时p的值为1004,而不是1001。
实际上,在C++中指针的算术运算与指针指向的变量类型有关,如p指向int型,因int型变量为4字节长度,所以,p+1相当于p+4,同样p+i相当于p+i*4。如果是double类型,则+8

两个同类型的指针做减法运算

指针2-指针1 ==>整数
常用于计算两个指针之间包含元素的个数。计算方法:
指 针 2 − 指 针 1 元 素 的 字 节 长 度 \frac{指针2-指针1}{元素的字节长度} 21

如:p1,p2是整型指针,p1中的地址为1000,p2中的地
址为1008。那么p2-p1,相当于(1008-1000)/4,结果为2,说明p1到p2之间包含2个元素。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
1 、结构体与类的编写: (A)利用struct关键字定义一个学生结构体(包括学号、姓名、性别):类名:student, num、name、sex,在主函数定义两个对象stud1,stud2,对stud1对象赋值并输出,对第2个对象stud2赋值输出; (B)利用class关键字将1改成类的编写,其它不变 (C)将输出封装成display,输入封装成setdata函数,分别在类里面定义2函数,在主函数中输入输出; (D)将上面两成员函数移至类外定义并输出 (E)将setdata函数利用对象的引用做函数参数,在主函数中输入输出 2、(1)定义一个时间类,属性包括小时、分、秒,定义两成员函数:settime,showtime,分别以两种方式、类内定义成员函数和内外定义成员函数 (2)对1两成员函数分别利用对象的引用做参数、默认参数做参数进行编写与调用并输出。属性 3、编写一个程序,模拟电梯的功能。功能接口包括电梯上行按钮、下行按钮、楼层选择和电梯在行驶过程中的楼层显示。 要求: (1)、由用户选择按上行按钮还是下行按钮,选择操作后再由用户输入要进入的楼层,进而电梯开始运行,显示所到的每一楼层层数。 (2).如果是上行,则选择输入的楼层号不能比当前楼层号小,否则应给出不合法提示。 (3). 如果是下行,则选择输入的楼层号不能比当前楼层号大,否则应给出不合法提示。 (4).电梯一旦开始运作就会始终运行,直到窗口关闭。 (5).电梯在经过不同楼层时,最好每个楼层的显示之间能有延迟,最终停靠的楼层的输出形式能更加醒目。如果可以,在电梯最初开始运行时,能在电梯由内部显示当前日期(提示:实现这些功能时,需要调用系统api,实现时间显示功能可以使用CDate类)。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

uncle_ll

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值