C++程序设计基础(第7版)课件汇 周霭如 4-数组 -11-输入输出流_第1页
C++程序设计基础(第7版)课件汇 周霭如 4-数组 -11-输入输出流_第2页
C++程序设计基础(第7版)课件汇 周霭如 4-数组 -11-输入输出流_第3页
C++程序设计基础(第7版)课件汇 周霭如 4-数组 -11-输入输出流_第4页
C++程序设计基础(第7版)课件汇 周霭如 4-数组 -11-输入输出流_第5页
已阅读5页,还剩1885页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第4章数组

4.1一维数组

4.2指针数组

4.3二维数组

4.4数组作函数参数

4.5动态存储

4.6字符数组与字符串

小结第4章数组

数组是由一定数目的同类元素顺序排列而成的结构类型数据一个数组在内存占有一片连续的存储区域数组名是存储空间的首地址数组的每个元素用下标变量标识

一维数组的元素是基本类型、结构类型或类类型一维数组是向量4.1一维数组说明格式为:

类型

标识符

[表达式

];4.1.1一维数组定义与初始化4.1.1一维数组与初始化说明格式为:

类型

标识符

[表达式

];4.1.1一维数组定义与初始化数组元素类型4.1.1一维数组与初始化说明格式为:

类型

标识符

[表达式

];4.1.1一维数组定义与初始化数组名存储地址4.1.1一维数组与初始化说明格式为:

类型标识符

[表达式

];4.1.1一维数组定义与初始化数组元素个数常整型表达式4.1.1一维数组与初始化说明格式为:

类型标识符

[

表达式

];4.1.1一维数组定义与初始化4.1.1一维数组与初始化数组的类型4.1.1一维数组定义与初始化例如constintN=20;constintM=40;constintMaxStringSize=80;constintMaxListSize=1000;int

A

[10];char

B

[MaxStringSize];double

C

[M*N];int

Values

[MaxListSize];A[0]A[1]A[2]A[3]A[4]A[5]A[6]A[7]A[8]A[9]数组AC[0]C[1]C[2]C[3]C[4]

:数组C……B[0]B[1]B[2]

::B[11]B[12]B[13]

::数组B4.1.1一维数组与初始化4.1.1一维数组定义与初始化例:

intary[10],i=3,j=5;

ary[0]ary[1]ary[2]ary[3]ary[4]ary[5]ary[6]ary[7]ary[8]ary[9]ary[0]=1010ary[i]=22ary[j]=ary[i]ary[2+j]=31312ary[ary[i]]=ary[0]10注意C++不提供对数组的下标范围检查4.1.1一维数组与初始化4.1.1一维数组定义与初始化与普通变量一样,可以在数组定义的同时,对数组元素赋初值例:

inta[5]={1,3,5,7,9}; intb1[5]={0};

intb2[5]={1,2,3,};

intc[]={1,2,3,4,5,6,7};

intd[5]={1,2,3,4,5,6,7};

4.1.1一维数组与初始化4.1.1一维数组定义与初始化与普通变量一样,可以在数组定义的同时,对数组元素赋初值例:

inta[5]={1,3,5,7,9};

intb1[5]={0};

intb2[5]={1,2,3,};

intc[]={1,2,3,4,5,6,7};

intd[5]={1,2,3,4,5,6,7};

//各元素分别赋初始值4.1.1一维数组与初始化4.1.1一维数组定义与初始化与普通变量一样,可以在数组定义的同时,对数组元素赋初值例:

inta[5]={1,3,5,7,9};

intb1[5]={0};

intb2[5]={1,2,3,};

intc[]={1,2,3,4,5,6,7};

intd[5]={1,2,3,4,5,6,7};

//全部元素初始化为0//各元素分别赋初始值4.1.1一维数组与初始化4.1.1一维数组定义与初始化与普通变量一样,可以在数组定义的同时,对数组元素赋初值例:

inta[5]={1,3,5,7,9}; intb1[5]={0};

intb2[5]={1,2,3,};

intc[]={1,2,3,4,5,6,7};

intd[5]={1,2,3,4,5,6,7};

//b2[3],b2[4]自动赋0//全部元素初始化为0//各元素分别赋初始值4.1.1一维数组与初始化4.1.1一维数组定义与初始化与普通变量一样,可以在数组定义的同时,对数组元素赋初值例:

inta[5]={1,3,5,7,9}; intb1[5]={0};

intb2[5]={1,2,3,};

intc[]={1,2,3,4,5,6,7};

intd[5]={1,2,3,4,5,6,7};

//b2[3],b2[4]自动赋0//自动定义数组长度为7//全部元素初始化为0//各元素分别赋初始值4.1.1一维数组与初始化4.1.1一维数组定义与初始化与普通变量一样,可以在数组定义的同时,对数组元素赋初值例:

inta[5]={1,3,5,7,9}; intb1[5]={0};

intb2[5]={1,2,3,};

intc[]={1,2,3,4,5,6,7};

intd[5]={1,2,3,4,5,6,7};

//b2[3],b2[4]自动赋0//自动定义数组长度为7//错误,初始化数据过多//全部元素初始化为0//各元素分别赋初始值4.1.1一维数组与初始化//例4-1数组测试#include<iostream>usingnamespacestd;intmain(){inti,a[5]={1,3,5,7,9};for(i=0;i<5;i++)cout<<a[i]<<"";cout<<endl;staticintb[5]={1,2,3};for(i=0;i<5;i++)cout<<b[i]<<"";cout<<endl;intc[]={1,2,3,4,5,6,7};for(i=0;i<sizeof(c)/sizeof(int);i++)cout<<c[i]<<"";cout<<endl;}4.1.1一维数组与初始化//例4-1数组测试#include<iostream>usingnamespacestd;intmain(){inti,a[5]={1,3,5,7,9};for(i=0;i<5;i++)cout<<a[i]<<"";cout<<endl;staticintb[5]={1,2,3};for(i=0;i<5;i++)cout<<b[i]<<"";cout<<endl;intc[]={1,2,3,4,5,6,7};for(i=0;i<sizeof(c)/sizeof(int);i++)cout<<c[i]<<"";cout<<endl;}//声明数组a并初始化4.1.1一维数组与初始化//例4-1数组测试#include<iostream>usingnamespacestd;intmain(){inti,a[5]={1,3,5,7,9};

for(i=0;i<5;i++)cout<<a[i]<<"";

cout<<endl;staticintb[5]={1,2,3};for(i=0;i<5;i++)cout<<b[i]<<"";cout<<endl;intc[]={1,2,3,4,5,6,7};for(i=0;i<sizeof(c)/sizeof(int);i++)cout<<c[i]<<"";cout<<endl;}//声明数组a并初始化//输出数组a的全部元素值4.1.1一维数组与初始化//例4-1数组测试#include<iostream>usingnamespacestd;intmain(){inti,a[5]={1,3,5,7,9};for(i=0;i<5;i++)cout<<a[i]<<"";cout<<endl;

staticintb[5]={1,2,3};

for(i=0;i<5;i++)cout<<b[i]<<"";cout<<endl;intc[]={1,2,3,4,5,6,7};for(i=0;i<sizeof(c)/sizeof(int);i++)cout<<c[i]<<"";cout<<endl;}//声明数组a并初始化//输出数组a的全部元素值//声明静态数组b并初始化4.1.1一维数组与初始化//例4-1数组测试#include<iostream>usingnamespacestd;intmain(){inti,a[5]={1,3,5,7,9};for(i=0;i<5;i++)cout<<a[i]<<"";cout<<endl;staticintb[5]={1,2,3};

for(i=0;i<5;i++)cout<<b[i]<<"";

cout<<endl;intc[]={1,2,3,4,5,6,7};for(i=0;i<sizeof(c)/sizeof(int);i++)cout<<c[i]<<"";cout<<endl;}//输出数组b的全部元素值4.1.1一维数组与初始化//声明数组a并初始化//输出数组a的全部元素值//声明静态数组b并初始化//例4-1数组测试#include<iostream>usingnamespacestd;intmain(){inti,a[5]={1,3,5,7,9};for(i=0;i<5;i++)cout<<a[i]<<"";cout<<endl;staticintb[5]={1,2,3};for(i=0;i<5;i++)cout<<b[i]<<"";cout<<endl;

intc[]={1,2,3,4,5,6,7};

for(i=0;i<sizeof(c)/sizeof(int);i++)cout<<c[i]<<"";cout<<endl;}//声明数组c,初始化,默认长度74.1.1一维数组与初始化//输出数组b的全部元素值//声明数组a并初始化//输出数组a的全部元素值//声明静态数组b并初始化//例4-1数组测试#include<iostream>usingnamespacestd;intmain(){inti,a[5]={1,3,5,7,9};for(i=0;i<5;i++)cout<<a[i]<<"";cout<<endl;staticintb[5]={1,2,3};for(i=0;i<5;i++)cout<<b[i]<<"";cout<<endl;intc[]={1,2,3,4,5,6,7};for(i=0;i<sizeof(c)/sizeof(int);i++)cout<<c[i]<<"";cout<<endl;}4.1.1一维数组与初始化//声明数组c,初始化,默认长度7//输出数组b的全部元素值//声明数组a并初始化//输出数组a的全部元素值//声明静态数组b并初始化int类型数据字节数//例4-1数组测试#include<iostream>usingnamespacestd;intmain(){inti,a[5]={1,3,5,7,9};for(i=0;i<5;i++)cout<<a[i]<<"";cout<<endl;staticintb[5]={1,2,3};for(i=0;i<5;i++)cout<<b[i]<<"";cout<<endl;intc[]={1,2,3,4,5,6,7};for(i=0;i<sizeof(c)/sizeof(int);i++)cout<<c[i]<<"";cout<<endl;}4.1.1一维数组与初始化//声明数组c,初始化,默认长度7//输出数组b的全部元素值//声明数组a并初始化//输出数组a的全部元素值//声明静态数组b并初始化数组c的字节数sizeof(int[7])//例4-1数组测试#include<iostream>usingnamespacestd;intmain(){inti,a[5]={1,3,5,7,9};for(i=0;i<5;i++)cout<<a[i]<<"";cout<<endl;staticintb[5]={1,2,3};for(i=0;i<5;i++)cout<<b[i]<<"";cout<<endl;intc[]={1,2,3,4,5,6,7};for(i=0;i<sizeof(c)/sizeof(int);i++)cout<<c[i]<<"";cout<<endl;}4.1.1一维数组与初始化//声明数组c,初始化,默认长度7//输出数组b的全部元素值//声明数组a并初始化//输出数组a的全部元素值//声明静态数组b并初始化数组c的元素个数//例4-1数组测试#include<iostream>usingnamespacestd;intmain(){inti,a[5]={1,3,5,7,9};for(i=0;i<5;i++)cout<<a[i]<<"";cout<<endl;staticintb[5]={1,2,3};for(i=0;i<5;i++)cout<<b[i]<<"";cout<<endl;intc[]={1,2,3,4,5,6,7};

for(i=0;i<sizeof(c)/sizeof(int);i++)cout<<c[i]<<"";

cout<<endl;}//输出数组c的全部元素值4.1.1一维数组与初始化//声明数组c,初始化,默认长度7//输出数组b的全部元素值//声明数组a并初始化//输出数组a的全部元素值//声明静态数组b并初始化//例4-1数组测试#include<iostream>usingnamespacestd;intmain(){inti,a[5]={1,3,5,7,9};for(i=0;i<5;i++)cout<<a[i]<<"";cout<<endl;staticintb[5]={1,2,3};for(i=0;i<5;i++)cout<<b[i]<<"";cout<<endl;intc[]={1,2,3,4,5,6,7};for(i=0;i<sizeof(c)/sizeof(int);i++)cout<<c[i]<<"";cout<<endl;}4.1.1一维数组与初始化//输出数组c的全部元素值//声明数组c,初始化,默认长度7//输出数组b的全部元素值//声明数组a并初始化//输出数组a的全部元素值//声明静态数组b并初始化访问格式: 数组名

[表达式

]4.1.2一维数组访问1.以下标方式访问数组4.1.2一维数组访问访问格式:

数组名

[表达式

]4.1.2一维数组访问1.以下标方式访问数组数组的地址4.1.2一维数组访问访问格式:

数组名

[表达式

]4.1.2一维数组访问1.以下标方式访问数组整型表达式地址偏移值4.1.2一维数组访问//例4-2以下标方式访问数组#include<iostream>usingnamespacestd;intmain(){inti,total=0;intintary[10];for(i=0;i<10;i++){intary[i]=i;cout<<intary[i]<<"";}cout<<endl;for(i=0;i<10;i++)total+=intary[i];cout<<"total="<<total<<endl;}4.1.2一维数组访问//例4-2以下标方式访问数组#include<iostream>usingnamespacestd;intmain(){inti,total=0;intintary[10];for(i=0;i<10;i++){intary[i]=i;cout<<intary[i]<<"";}cout<<endl;for(i=0;i<10;i++)total+=intary[i];cout<<"total="<<total<<endl;}循环控制变量作下标表达式4.1.2一维数组访问4.1.2一维数组访问2.以指针方式访问数组a[0]a[1]a[2]a[3]a[4]a[5]a[6]a[7]a[8]a[9]a0x0065FDE40x0065FDF0//例4-3#include<iostream>usingnamespacestd;intmain(){inta[10]={1,3,5,7,9};cout<<"Addressofarraya:"<<a<<endl;cout<<"Addressofelementa[3]:"<<&a[3]<<endl;}4.1.2一维数组访问4.1.2一维数组访问2.以指针方式访问数组a[0]a[1]a[2]a[3]a[4]a[5]a[6]a[7]a[8]a[9]a0x0065FDE40x0065FDF0//例4-3#include<iostream>usingnamespacestd;intmain(){inta[10]={1,3,5,7,9};cout<<"Addressofarraya:"<<a<<endl;cout<<"Addressofelementa[3]:"<<&a[3]<<endl;}数组名是存储空间首地址4.1.2一维数组访问4.1.2一维数组访问2.以指针方式访问数组a[0]a[1]a[2]a[3]a[4]a[5]a[6]a[7]a[8]a[9]a0x0065FDE40x0065FDF0//例4-3#include<iostream>usingnamespacestd;intmain(){inta[10]={1,3,5,7,9};cout<<"Addressofarraya:"<<a<<endl;cout<<"Addressofelementa[3]:"<<&a[3]<<endl;}偏移值3*sizeof(int)4.1.2一维数组访问4.1.2一维数组访问2.以指针方式访问数组数组名是隐含意义的常指针(直接地址)其关联类型是数组元素的类型a==&a[0]a+1==&a[1]a+i==&a[i]*a==a[0]*(a+1)==a[1]*(a+i)==a[i]a[0]a[1]a[2]a[3]a[4]a[5]a[6]a[7]a[8]a[9]a0x0065FDE40x0065FDF01357900000inta[10]={1,3,5,7,9};则:4.1.2一维数组访问4.1.2一维数组访问2.以指针方式访问数组a0x0065FDE4数组名是隐含意义的常指针(直接地址)其关联类型是数组元素的类型a==&a[0]a+1==&a[1]a+i==&a[i]*a==a[0]*(a+1)==a[1]*(a+i)==a[i]a[0]a[1]a[2]a[3]a[4]a[5]a[6]a[7]a[8]a[9]1357900000inta[10]={1,3,5,7,9};则:4.1.2一维数组访问4.1.2一维数组访问2.以指针方式访问数组a+10x0065FDE8数组名是隐含意义的常指针(直接地址)其关联类型是数组元素的类型a==&a[0]a+1==&a[1]a+i==&a[i]*a==a[0]*(a+1)==a[1]*(a+i)==a[i]a[0]a[1]a[2]a[3]a[4]a[5]a[6]a[7]a[8]a[9]1357900000inta[10]={1,3,5,7,9};则:4.1.2一维数组访问4.1.2一维数组访问2.以指针方式访问数组a+ia+i*sizeof(Type)数组名是隐含意义的常指针(直接地址)其关联类型是数组元素的类型a==&a[0]a+1==&a[1]a+i==&a[i]

*a==a[0]*(a+1)==a[1]*(a+i)==a[i]a[0]a[1]a[2]a[3]a[4]a[5]a[6]a[7]a[8]a[9]1357900000inta[10]={1,3,5,7,9};则:4.1.2一维数组访问4.1.2一维数组访问2.以指针方式访问数组数组名是隐含意义的常指针(直接地址)其关联类型是数组元素的类型a==&a[0]a+1==&a[1]a+i==&a[i]*a==a[0]

*(a+1)==a[1]*(a+i)==a[i]a[0]a[1]a[2]a[3]a[4]a[5]a[6]a[7]a[8]a[9nta[10]={1,3,5,7,9};则:4.1.2一维数组访问4.1.2一维数组访问2.以指针方式访问数组数组名是隐含意义的常指针(直接地址)其关联类型是数组元素的类型a==&a[0]a+1==&a[1]a+i==&a[i]*a==a[0]*(a+1)==a[1]

*(a+i)==a[i]a[0]a[1]a[2]a[3]a[4]a[5]a[6]a[7]a[8]a[9nta[10]={1,3,5,7,9};则:4.1.2一维数组访问4.1.2一维数组访问2.以指针方式访问数组数组名是隐含意义的常指针(直接地址)其关联类型是数组元素的类型a==&a[0]a+1==&a[1]a+i==&a[i]*a==a[0]*(a+1)==a[1]*(a+i)==a[i]

a[0]a[1]a[2]a[3]a[4]a[5]a[6]a[7]a[8]a[9nta[10]={1,3,5,7,9};则:4.1.2一维数组访问4.1.2一维数组访问2.以指针方式访问数组数组名是隐含意义的常指针(直接地址)其关联类型是数组元素的类型a==&a[0]a+1==&a[1]a+i==&a[i]*a==a[0]*(a+1)==a[1]*(a+i)==a[i]

a[0]a[1]a[2]a[3]a[4]a[5]a[6]a[7]a[8]a[9]1357900000数组元素的指针访问方式inta[10]={1,3,5,7,9};则:4.1.2一维数组访问//例4-4用指针方式访问数组#include<iostream>usingnamespacestd;intmain(){inti,total=0;intintary[10];for(i=0;i<10;i++){*(intary+i)=i;cout<<*(intary+i)<<"";}cout<<endl;for(i=0;i<10;i++)total+=*(intary+i);cout<<"total="<<total<<endl;}4.1.2一维数组访问//例4-4用指针方式访问数组#include<iostream>usingnamespacestd;intmain(){inti,total=0;intintary[10];for(i=0;i<10;i++){*(intary+i)=i;cout<<*(intary+i)<<"";}cout<<endl;for(i=0;i<10;i++)total+=*(intary+i);cout<<"total="<<total<<endl;}数组元素的指针表示方式4.1.2一维数组访问4.1.2一维数组访问指针变量与数组a[0]a[1]a[2]a[3]a[4]a[5]a[6]a[7]a[8]a[9]a0x0065FDE40x0065FDF01357900000inta[10];int*p; p=a; cout<<*p;p++; cout<<*(p++);p+=3; cout<<&p;4.1.2一维数组访问4.1.2一维数组访问a[0]a[1]a[2]a[3]a[4]a[5]a[6]a[7]a[8]a[9]a0x0065FDE40x0065FDF01357900000inta[10];

int*p;p=a;cout<<*p;p++;cout<<*(p++);p+=3;cout<<&p;//a是内存的直接地址指针变量与数组4.1.2一维数组访问4.1.2一维数组访问a[0]a[1]a[2]a[3]a[4]a[5]a[6]a[7]a[8]a[9]a0x0065FDE40x0065FDF01357900000inta[10];//a是内存的直接地址int*p;

p=a; cout<<*p;p++;cout<<*(p++);p+=3; cout<<&p;//p是指针变量p指针变量与数组4.1.2一维数组访问4.1.2一维数组访问a[0]a[1]a[2]a[3]a[4]a[5]a[6]a[7]a[8]a[9]a0x0065FDE40x0065FDF01357900000inta[10];//a是内存的直接地址int*p; //p是指针变量p=a;

cout<<*p;p++; cout<<*(p++);p+=3; cout<<&p;//p的值是a[0]的地址p0x0065FDE4指针变量与数组4.1.2一维数组访问4.1.2一维数组访问a[0]a[1]a[2]a[3]a[4]a[5]a[6]a[7]a[8]a[9]a0x0065FDE40x0065FDF01357900000inta[10];//a是内存的直接地址int*p; //p是指针变量p=a; //p的值是a[0]的地址cout<<*p;

p++; cout<<*(p++);p+=3; cout<<&p;//间址访问,输出a[0]的值p0x0065FDE41指针变量与数组4.1.2一维数组访问4.1.2一维数组访问a[0]a[1]a[2]a[3]a[4]a[5]a[6]a[7]a[8]a[9]a0x0065FDE40x0065FDF01357900000inta[10];//a是内存的直接地址int*p; //p是指针变量p=a; //p的值是a[0]的地址cout<<*p;//间址访问,输出a[0]的值p++;

cout<<*(p++);p+=3; cout<<&p;//p指向a[1]p0x0065FDE4指针变量与数组4.1.2一维数组访问4.1.2一维数组访问a[0]a[1]a[2]a[3]a[4]a[5]a[6]a[7]a[8]a[9]a0x0065FDE40x0065FDF01357900000inta[10];//a是内存的直接地址int*p; //p是指针变量p=a; //p的值是a[0]的地址cout<<*p;//间址访问,输出a[0]的值p++;

//p指向a[1]cout<<*(p++);p+=3; cout<<&p;p0x0065FDE8指针变量与数组4.1.2一维数组访问4.1.2一维数组访问a[0]a[1]a[2]a[3]a[4]a[5]a[6]a[7]a[8]a[9]a0x0065FDE40x0065FDF01357900000inta[10];//a是内存的直接地址int*p; //p是指针变量p=a; //p的值是a[0]的地址cout<<*p;//间址访问,输出a[0]的值p++; //p指向a[1]cout<<*(p++);

p+=3; cout<<&p;p0x0065FDE8//输出a[1],p指向a[2]3指针变量与数组4.1.2一维数组访问4.1.2一维数组访问a[0]a[1]a[2]a[3]a[4]a[5]a[6]a[7]a[8]a[9]a0x0065FDE40x0065FDF01357900000inta[10];//a是内存的直接地址int*p; //p是指针变量p=a; //p的值是a[0]的地址cout<<*p;//间址访问,输出a[0]的值p++; //p指向a[1]cout<<*(p++);

//输出a[1],p指向a[2]p+=3; cout<<&p;p0x0065FDEC指针变量与数组4.1.2一维数组访问4.1.2一维数组访问a[0]a[1]a[2]a[3]a[4]a[5]a[6]a[7]a[8]a[9]a0x0065FDE40x0065FDF01357900000inta[10];//a是内存的直接地址int*p; //p是指针变量p=a; //p的值是a[0]的地址cout<<*p;//间址访问,输出a[0]的值p++; //p指向a[1]cout<<*(p++);//输出a[1],p指向a[2]p+=3;

cout<<&p;p0x0065FDF8//p指向a[5]指针变量与数组4.1.2一维数组访问4.1.2一维数组访问a[0]a[1]a[2]a[3]a[4]a[5]a[6]a[7]a[8]a[9]a0x0065FDE40x0065FDF01357900000inta[10];//a是内存的直接地址int*p; //p是指针变量p=a; //p的值是a[0]的地址cout<<*p;//间址访问,输出a[0]的值p++; //p指向a[1]cout<<*(p++);//输出a[1],p指向a[2]p+=3; cout<<&p;

p0x0065FDF8//输出p的地址指针变量的地址0x0065FDE0指针变量与数组4.1.2一维数组访问//p指向a[5]4.1.2一维数组访问a[0]a[1]a[2]a[3]a[4]a[5]a[6]a[7]a[8]a[9]a0x0065FDE40x0065FDF01357900000inta[10];//a是内存的直接地址int*p; //p是指针变量p=a; //p的值是a[0]的地址cout<<*p;//间址访问,输出a[0]的值p++; //p指向a[1]cout<<*(p++);//输出a[1],p指向a[2]p+=3; //p指向a[5]cout<<&p;

//输出p的地址p0x0065FDF40x0065FDF8p0x0065FDE0指针变量与数组4.1.2一维数组访问//例4-5用指针变量访问数组#include<iostream>usingnamespacestd;intmain(){inta[]={1,3,5,7,9},i,*p;for(p=a;p<a+5;p++) cout<<"a["<<p-a<<"]="<<*p<<'\t';cout<<endl;for(p=a,i=0;i<5;i++) cout<<"a["<<i<<"]="<<p[i]<<'\t';cout<<endl;}13579a[0]a[1]a[2]a[3]a[4]4.1.2一维数组访问a//例4-5用指针变量访问数组#include<iostream>usingnamespacestd;intmain(){inta[]={1,3,5,7,9},i,*p;for(p=a;p<a+5;p++) cout<<"a["<<p-a<<"]="<<*p<<'\t';cout<<endl;for(p=a,i=0;i<5;i++) cout<<"a["<<i<<"]="<<p[i]<<'\t';cout<<endl;}13579a[0]a[1]a[2]a[3]a[4]整型指针4.1.2一维数组访问a//例4-5用指针变量访问数组#include<iostream>usingnamespacestd;intmain(){inta[]={1,3,5,7,9},i,*p;for(p=a;p<a+5;p++) cout<<"a["<<p-a<<"]="<<*p<<'\t';cout<<endl;for(p=a,i=0;i<5;i++) cout<<"a["<<i<<"]="<<p[i]<<'\t';cout<<endl;}13579a[0]a[1]a[2]a[3]a[4]pp=&a[0]4.1.2一维数组访问a//例4-5用指针变量访问数组#include<iostream>usingnamespacestd;intmain(){inta[]={1,3,5,7,9},i,*p;for(p=a;p<a+5;p++) cout<<"a["<<p-a<<"]="<<*p<<'\t';cout<<endl;for(p=a,i=0;i<5;i++) cout<<"a["<<i<<"]="<<p[i]<<'\t';cout<<endl;}13579a[0]a[1]a[2]a[3]a[4]p地址偏移a+54.1.2一维数组访问a//例4-5用指针变量访问数组#include<iostream>usingnamespacestd;intmain(){inta[]={1,3,5,7,9},i,*p;for(p=a;p<a+5;p++) cout<<"a["<<p-a<<"]="<<*p<<'\t';cout<<endl;for(p=a,i=0;i<5;i++) cout<<"a["<<i<<"]="<<p[i]<<'\t';cout<<endl;}13579a[0]a[1]a[2]a[3]a[4]p间址访问元素a+54.1.2一维数组访问ap//例4-5用指针变量访问数组#include<iostream>usingnamespacestd;intmain(){inta[]={1,3,5,7,9},i,*p;for(p=a;p<a+5;p++) cout<<"a["<<p-a<<"]="<<*p<<'\t';cout<<endl;for(p=a,i=0;i<5;i++) cout<<"a["<<i<<"]="<<p[i]<<'\t';cout<<endl;}13579a[0]a[1]a[2]a[3]a[4]指针移动pa+54.1.2一维数组访问a//例4-5用指针变量访问数组#include<iostream>usingnamespacestd;intmain(){inta[]={1,3,5,7,9},i,*p;for(p=a;p<a+5;p++) cout<<"a["<<p-a<<"]="<<*p<<'\t';cout<<endl;for(p=a,i=0;i<5;i++) cout<<"a["<<i<<"]="<<p[i]<<'\t';cout<<endl;}13579a[0]a[1]a[2]a[3]a[4]下标偏移值pa+54.1.2一维数组访问a//例4-5用指针变量访问数组#include<iostream>usingnamespacestd;intmain(){inta[]={1,3,5,7,9},i,*p;for(p=a;p<a+5;p++) cout<<"a["<<p-a<<"]="<<*p<<'\t';cout<<endl;for(p=a,i=0;i<5;i++) cout<<"a["<<i<<"]="<<p[i]<<'\t';cout<<endl;}13579a[0]a[1]a[2]a[3]a[4]pa+54.1.2一维数组访问a//例4-5用指针变量访问数组#include<iostream>usingnamespacestd;intmain(){inta[]={1,3,5,7,9},i,*p;

for(p=a;p<a+5;p++) cout<<"a["<<p-a<<"]="<<*p<<'\t';

cout<<endl;for(p=a,i=0;i<5;i++) cout<<"a["<<i<<"]="<<p[i]<<'\t';cout<<endl;}a[0]=1 a[1]=3 a[2]=5 a[3]=7 a[4]=9a[1]=1 a[3]=3 a[5]=5 a[7]=7 a[9]=913579a[0]a[1]a[2]a[3]a[4]pa+5注意循环结束后的指针位置4.1.2一维数组访问a//例4-5用指针变量访问数组#include<iostream>usingnamespacestd;intmain(){inta[]={1,3,5,7,9},i,*p;for(p=a;p<a+5;p++) cout<<"a["<<p-a<<"]="<<*p<<'\t';cout<<endl;for(p=a,i=0;i<5;i++) cout<<"a["<<i<<"]="<<p[i]<<'\t';cout<<endl;}a[0]=1 a[1]=3 a[2]=5 a[3]=7 a[4]=9a[1]=1 a[3]=3 a[5]=5 a[7]=7 a[9]=913579a[0]a[1]a[2]a[3]a[4]指针复位pa+54.1.2一维数组访问a//例4-5用指针变量访问数组#include<iostream>usingnamespacestd;intmain(){inta[]={1,3,5,7,9},i,*p;for(p=a;p<a+5;p++) cout<<"a["<<p-a<<"]="<<*p<<'\t';cout<<endl;for(p=a,i=0;i<5;i++) cout<<"a["<<i<<"]="<<p[i]<<'\t';cout<<endl;}a[0]=1 a[1]=3 a[2]=5 a[3]=7 a[4]=9a[1]=1 a[3]=3 a[5]=5 a[7]=7 a[9]=913579a[0]a[1]a[2]a[3]a[4]pa+54.1.2一维数组访问a指针复位//例4-5用指针变量访问数组#include<iostream>usingnamespacestd;intmain(){inta[]={1,3,5,7,9},i,*p;for(p=a;p<a+5;p++) cout<<"a["<<p-a<<"]="<<*p<<'\t';cout<<endl;for(p=a,i=0;i<5;i++) cout<<"a["<<i<<"]="<<p[i]<<'\t';cout<<endl;}a[0]=1 a[1]=3 a[2]=5 a[3]=7 a[4]=9a[1]=1 a[3]=3 a[5]=5 a[7]=7 a[9]=913579a[0]a[1]a[2]a[3]a[4]指针变量下标方式访问元素pa+54.1.2一维数组访问a//例4-5用指针变量访问数组#include<iostream>usingnamespacestd;intmain(){inta[]={1,3,5,7,9},i,*p;for(p=a;p<a+5;p++) cout<<"a["<<p-a<<"]="<<*p<<'\t';cout<<endl;for(p=a,i=0;i<5;i++) cout<<"a["<<i<<"]="<<p[i]<<'\t';cout<<endl;}a[0]=1 a[1]=3 a[2]=5 a[3]=7 a[4]=9a[1]=1 a[3]=3 a[5]=5 a[7]=7 a[9]=913579a[0]a[1]a[2]a[3]a[4][]动词偏址运算,访问对象pa+54.1.2一维数组访问a//例4-5用指针变量访问数组#include<iostream>usingnamespacestd;intmain(){inta[]={1,3,5,7,9},i,*p;for(p=a;p<a+5;p++) cout<<"a["<<p-a<<"]="<<*p<<'\t';cout<<endl;for(p=a,i=0;i<5;i++) cout<<"a["<<i<<"]="<<p[i]<<'\t';cout<<endl;}a[0]=1 a[1]=3 a[2]=5 a[3]=7 a[4]=9a[0]=1 a[1]=3 a[2]=5 a[3]=7 a[4]=913579a[0]a[1]a[2]a[3]a[4]pa+54.1.2一维数组访问a13579a[0]a[1]a[2]a[3]a[4]a+5可以吗?//例4-5用指针变量访问数组#include<iostream>usingnamespacestd;intmain(){inta[]={1,3,5,7,9},i,*p;for(p=a;p<a+5;p++) cout<<"a["<<p-a<<"]="<<*p<<'\t';cout<<endl;for(p=a,i=0;i<5;i++) cout<<"a["<<i<<"]="<<p[i]<<'\t';cout<<endl;}for(i=0;i<5;i++,a++) cout<<"a["<<i<<"]="<<*a<<'\t';4.1.2一维数组访问a13579a[0]a[1]a[2]a[3]a[4]a+5//例4-5用指针变量访问数组#include<iostream>usingnamespacestd;intmain(){inta[]={1,3,5,7,9},i,*p;for(p=a;p<a+5;p++) cout<<"a["<<p-a<<"]="<<*p<<'\t';cout<<endl;for(p=a,i=0;i<5;i++) cout<<"a["<<i<<"]="<<p[i]<<'\t';cout<<endl;}直接地址不能修改4.1.2一维数组访问afor(i=0;i<5;i++,a++) cout<<"a["<<i<<"]="<<*a<<'\t';a13579a[0]a[1]a[2]a[3]a[4]a+5//例4-5用指针变量访问数组#include<iostream>usingnamespacestd;intmain(){inta[]={1,3,5,7,9},i,*p;for(p=a;p<a+5;p++) cout<<"a["<<p-a<<"]="<<*p<<'\t';cout<<endl;for(p=a,i=0;i<5;i++) cout<<"a["<<i<<"]="<<p[i]<<'\t';cout<<endl;}4.1.2一维数组访问讨论指针偏移计算

int*p;intn;……p=p+n;右操作数类型int左操作数类型int*a13579a[0]a[1]a[2]a[3]a[4]a+5//例4-5用指针变量访问数组#include<iostream>usingnamespacestd;intmain(){inta[]={1,3,5,7,9},i,*p;for(p=a;p<a+5;p++) cout<<"a["<<p-a<<"]="<<*p<<'\t';cout<<endl;for(p=a,i=0;i<5;i++) cout<<"a["<<i<<"]="<<p[i]<<'\t';cout<<endl;}4.1.2一维数组访问讨论指针偏移计算

int*p;intn;……p=p+n

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论