武汉理工大学计其机学院信息技术票计算机程序设计基础C语言主讲教师:李民武汉理工大学Wuhan Universityof Technology
主讲教师:李 民
计算机程序设计基础C语言0指针和数组指针变量的运算0094专蛋的武汉理工大学WuhanUniversityof Technology
计算机程序设计基础C语言 ⚫ 指针和数组 ➢ 指针变量的运算
指针变量的运算Qa[]指针的算术运算int a[1o],*p=a;p+1,a+1a[1]ptip士ixd介.......p+i,a+i(i为整型数,d为p指向的变量所占字节数a[i]p+i, p-i如下运算可以吗?P不移动p+9,a+9a[9]att,a--xp++, p--P移动Vati,a-ip+=i,p-=iXa-=ia+=irint a[i0];int *p=&a[2];p++;问:哪个元素值为1?*p=1 ;答:a[3]
◼ p i p i d ( i为整型数, d 为 p指向的变量所占字节数 ) ◼ p+i, p - i ◼ p++, p - - ◼ p+= i, p - = i 指针 变量的运算 ◼ 指针的算术运算 int a[10],*p=a; 如下运算可以吗? a++, a- a+i, a - i a+=i, a - = i X √ X a[0] a[1] . a[9] p p+1,a+1 p+i,a+i p+9,a+9 . a[ i ] P不移动 P移动 int a[10]; int *p=&a[2]; p++; *p=1; 问:哪个元素值为 1 ? 答:a[3]
指针变量的运算a[o]指针的算术运算p2a[1]inta[10],*p1=&a[5],*p2=&a[1];p1a[5]若p1与p2指向同一数组,则,p1-p2两指针间元素个数台(p1-p2) /da[9]答:问:p1-p2的值=?4无意义p1+p2
◼ 若p1 与p2指向同一数组 ,则,p1 -p2 = 两指针间元素个数 (p1 -p2)/d ◼ p1+p2 无意义 指针 变量的运算 int a[10], *p1=&a[5],*p2=&a[1]; ◼ 指针 的算术运算 a[0] a[1] . a[9] p2 p1 . a[5] 问 :p1 -p2的值 = ? 答: 4
用p++与地址偏移量遍历整个数组#include<stdio.h>int main ()(注意:也造成了指针p的移动。inta[10]=(9,8,7,6,5,4,3,2,1,0],*p;for(p=a; p-a<10; p++)printf("%d,",*p);return 0;1运行结果:9.87654.321
#include <stdio.h> int main (){ int a[10]={9,8,7,6,5,4,3,2,1,0},*p; for (p=a; p-a<10; p++) printf("%d,",*p); return 0; } 9,8,7,6,5,4,3,2,1, 注意: 也造成了指针p的移动。 运行结果: