◆例62对变量的直接访问和间接访问:写出以下程序 运行结果。 #include <iostream> 运行结果: using namespace std =a void maino ch1=B h=d ichar chI=a*ch, intk1=100; ch=&ch1. //指针ch指向变量ch1 cout<<"*ch="<<ch<<end;//间接访问 *ch=B cout<< chl="<<ch1< <endl. //直接访问 ch1=k1, cout<<"*ch="<<*ch<<end;/间接访问 2021/2/24 16
2021/2/24 -16- 例6.2 对变量的直接访问和间接访问:写出以下程序 运行结果。 #include <iostream> using namespace std; void main() {char ch1='a',*ch; int k1=100; ch=&ch1; //指针ch指向变量ch1 cout<<"*ch="<<*ch<<endl; //间接访问 *ch='B'; cout<<"ch1="<<ch1<<endl; //直接访问 ch1=k1; cout<<"*ch="<<*ch<<endl; //间接访问 } 运行结果: *ch=a ch1=B *ch=d
◆例6.3定义指向指针的指针变量。观察对这种指针变量间 接访问的结果。 运行结果: pva=100 #include <iostream> *ppva=0X0012FF7C using namespace std pva=0X0012FF7C void maino int va=100*pva,*ppva;∥/ppva是指向指针的指针 int kl=100 pva=&va: cout<<"*pva="<<*pva<<end;//间接访问结果是 整型数 ppva=&pva; cout<<"*ppva="<<*ppva<<endl;∥/间接访问结果是 地址 cout<< pva="<<pva< <endI, 2021/2/24的内容 航就是指针pa -17
2021/2/24 -17- 例6.3 定义指向指针的指针变量。观察对这种指针变量间 接访问的结果。 #include <iostream> using namespace std; void main() { int va=100,*pva,**ppva; //ppva是指向指针的指针 int k1=100; pva=&va; cout<<"*pva="<<*pva<<endl; //间接访问结果是 整型数 ppva=&pva; cout<<"*ppva="<<*ppva<<endl; //间接访问结果是 地址 cout<<"pva="<<pva<<endl; //就是指针pva 的内容 } 运行结果: *pva=100 *ppva=0x0012FF7C pva=0x0012FF7C
622间接引用运算 ppva ox0012FF74 12 FF 78 pva pva OxD012FF78 12 FF JC pva va OxD012FFTC 64 00 00 00 2021/2/24
2021/2/24 -18- 6.2.2 间接引用运算
623指针的算术运算 ◆指针可以进行的算术运算只有加法和减法 ◆指针可以和一个整数n做加法或者减法运算。 short"pa int"pb 2 指针p和整数n相加(相 pa-1 减)的含义是指向当前 指向位置p的前方或后 方第n个数据的地址 pa+1 pa+2 b+1 pa+3 b+2 2021/2/24
2021/2/24 -19- 6.2.3 指针的算术运算 指针可以进行的算术运算只有加法和减法。 指针可以和一个整数n做加法或者减法运算。 指针p和整数n相加(相 减)的含义是指向当前 指向位置p的前方或后 方第n个数据的地址
◆例6.4通过指针的间接访问,输出下标为偶数的数组元素 的值。 数组第一个元素(下标为 include <iostream> using namespace std; 每次循环,指针加2 void maino [int k110]={11,2 ,58 s8693,108}*k; k=&k1[0] for(int i=0; i<10:i-1+2) co≮k1qs=<<(k+)<<""; cout<<endl; 运行结果: K1[0]=11k1[2]=37 2021/2/24
2021/2/24 -20- 例6.4 通过指针的间接访问,输出下标为偶数的数组元素 的值。 #include <iostream> using namespace std; void main() { int k1[10]={11,24,37,44,58,66,79,86,93,108},*k; k=&k1[0]; for(int i=0;i<10;i=i+2) cout<<"k1["<<i<<"]="<<*(k+i)<< " "; cout<<endl; } 运行结果: K1[0]=11 k1[2]=37…. 数组第一个元素(下标为 0)的地址赋值给指针k 每次循环,指针加2