3.5.3 指针和数组

练习3.34


	int main() {
		
		int ia[] = { 1,2,3,4,5 };
		int* p1 = &ia[0];
		int* p2 = &ia[2];
		cout << *p1 << endl; //1
		cout << *p2 << endl; //3
		p1 += p2 - p1;       //实质等价于 p1=p1+(p2-p1),让p1指向p2所指的对象
		cout << *p1 << endl; //3
		cout << *p2 << endl; //3

}

练习3.35

	int main() {
		
		int ia[] = { 1,2,3,4,5 };
		
		int* pbeg =ia, * pend = end(ia);
		while (pbeg != pend)
		{
			*pbeg = 0;
			cout << *pbeg << " ";
			++pbeg;
		}
}

在这里插入图片描述

练习3.36

	int main() 
	{
		
		int ia[] = { 1,2,3,4,5 };
		int ib[] = { 1,2,5,4,5,6,7 };
		
		if (ia == ib)
		{
			cout << "相等" << endl;
		}
		else
			cout << "不相等" << endl;
     }

int main() 
	{
		
		int ia[] = { 1,2,3,4,5 };
		int ib[] = { 1,2,5,4,4 };
		

		int* ba =ia, * ea = end(ia);
		int* bb = ib, * eb = end(ib);
		
		
		//比较ia数组和ib数组是否相等
		while (*ba == *bb && ba != ea && bb != eb) //验证元素是否相同,如果全部检查完则结束循环
		{
			
			++ ba; 
			++ bb;
		}
		//此时有2种情况
		//ba和bb不相等,第一个循环条件不满足,中途退出循环,此时*ba!=*bb
		//ba和bb前面都相等,ba和bb都到了最后一个元素也相等,++后得到尾元素的后一个位置,第二个和第三个循环条件不满足,退出循环
        //ba和bb前面都相等,ba到了最后一个元素,而bb没到,第二个循环条件不满足,此时*ba!=*bb

		if (*ba == *bb)
		{
			cout << "相等" << endl;
		}
		else {
			cout << "不相等" << endl;
		}
	
     }
int main() 
	{
		
		vector<int> ia = { 1,2,3,4,5 };
		vector<int> ib = { 1,2,5,4,4 };
		
		if (ia == ib)
		{
			cout << "相等" << endl;
		}
		else
			cout << "不相等" << endl;
	
     }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值