cppTest-3.0:指针相关-1(指针与一维数组)

本文深入探讨了C++中指针与一维数组的基本概念、定义、初始化、元素表示与操作,包括如何正确使用数组、指针进行数据访问与修改,以及它们之间的相互作用与区别。通过实例代码解析,帮助读者掌握C++中数组与指针的高级应用技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/**
 *cppTest-3.0:指针相关-1(指针与一维数组)
 *
 *author 炜sama
*/

#include<iostream.h>

int whole[5];//全局变量一维数组的元素可以自动获得初值0!
void main()
{
	cout<<"数组定义及初始化的问题-----------"<<endl;
	int a[5]={0,1,2,3,4};//Java的定义不能指定数组长度5!
	int b[]={0,1,2,3,4};//不指明数组长度。与Java的一样!
	int c[5]={0,1*2};//不全部初始化
	int len=5;
	//一个变量等价于一个长度为1的数组!
	cout<<len<<","<<(&len)[0]<<","<<*(&len)<<","<<*&len<<endl;
	//int d[len]={0,1,2,3,4};//错误!定义数组时不能用变量表达式表示长度。Java可以!
	a[len-1]=4*4;//但是定义之后可以用变量表达式做下标
	//b=a;//错误!数组不能直接赋值给数组。Java可以!
	//b={0,1,2,3,4};//错误!b为常量,不能作为左值。Java也不行!
	//b[5]={0,1,2,3,4};//错误!

	int d[5];//自动局部变量一维数组的元素未初始化将会是随机值!
	static int e[5];//静态局部变量一维数组的元素可以自动获得初值0!与C语言教材上说的相反!
	for(int i=0;i<5;i++) cout<<d[i];cout<<endl;
	for(int j=0;j<5;j++) cout<<e[j];cout<<endl;
	for(int k=0;k<5;k++) cout<<whole[k];cout<<endl;

	cout<<"数组元素及元素地址的表示----------"<<endl;

	if(a==&a[0])
		cout<<"a==&a[0]"<<endl;
	else
		cout<<"a!=&a[0]"<<endl;
	if(a+1==&a[1])
		cout<<"a+1==&a[1]"<<endl;
	else
		cout<<"a+1!=&a[1]"<<endl;
	if(*a==a[0])
		cout<<"*a==a[0]"<<endl;
	else
		cout<<"*a!=a[0]"<<endl;
	if(*(a+1)==a[1])
		cout<<"*(a+1)==a[1]"<<endl;
	else
		cout<<"*(a+1)!=a[1]"<<endl;

	cout<<"数组元素、数组指针、数组空间名称、数组空间取值"<<endl;
	cout<<"a[0]--"<<a[0]<<","<<a[0]+1<<","<<sizeof(a[0])<<endl;
	int *pa=a;
	cout<<"*pa--"<<*pa<<","<<*(pa+1)<<","<<sizeof(*pa)<<endl;
	cout<<"pa--"<<pa<<","<<pa+1<<","<<sizeof(pa)<<endl;
	pa=&a[0];
	cout<<"*pa--"<<*pa<<","<<*(pa+1)<<","<<sizeof(*pa)<<endl;
	cout<<"pa--"<<pa<<","<<pa+1<<","<<sizeof(pa)<<endl;
	cout<<"a--"<<a<<","<<a+1<<","<<sizeof(a)<<endl;
	cout<<"&a--"<<&a<<","<<&a+1<<","<<sizeof(&a)<<endl;
	//(int[5])* pas=&a;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值