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

来源:互联网 发布:八卦八卦我牵挂 知乎 编辑:程序博客网 时间:2024/06/06 18:18
/** *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;elsecout<<"a!=&a[0]"<<endl;if(a+1==&a[1])cout<<"a+1==&a[1]"<<endl;elsecout<<"a+1!=&a[1]"<<endl;if(*a==a[0])cout<<"*a==a[0]"<<endl;elsecout<<"*a!=a[0]"<<endl;if(*(a+1)==a[1])cout<<"*(a+1)==a[1]"<<endl;elsecout<<"*(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;}

0 0
原创粉丝点击