第10章指针类型 *p1 &iF p2 p2 & p3 *p3 &k 图10-1
第10章 指针类型 图 10 - 1
第10章指针类型 指针指向变量*pl、*2、*3相当于整型变量i、j、k。例如: int*p=&i;蕌 scanf(“%d,p);/*等价于 scanf(“%d,&i)*{蕌 printf(“%d”,*p);/*等价于 printf(“%d,i)*{蕌
第10章 指针类型 指针指向变量*p1、 *p2、 *p3相当于整型变量i、j、 k。例如: int *p=&i; scanf(“%d” , p); /*等价于scanf(“%d” , &i)*/ printf(“%d” , *p); /*等价于printf(“%d” , i) */
第10章指针类型 10.12指针的运算 1.引用运算蕌 1)取地址运算(&)蕌 取地址运算“&ˆ,对指针变量进行取地址运算, 可以得到指针变量本身的地址
第10章 指针类型 10.1.2 指针的运算 1. 引用运算 1) 取地址运算(&) 取地址运算“&” ,对指针变量进行取地址运算, 可以得到指针变量本身的地址
第10章指针类型 2)取内容运算(*)蕌 取内容运算“*,前称指针运算,用于获取地址数据 对应存储单元的内容。取内容运算的优先级与取地址运算 优先级相同,也为第2级,结合性亦为右结合。 对指针变量,进行取内容运算可以得到指针变量所指 向的数据。蕌 取内容运算与取地址运算实质上是一对互逆运算 例如: inta,*p=&a;蕌 *(&a)就是a,&(*p)就是p;p指向a,*p与a等 价
第10章 指针类型 2) 取内容运算(*) 取内容运算“*” ,前称指针运算,用于获取地址数据 对应存储单元的内容。取内容运算的优先级与取地址运算 优先级相同,也为第2级,结合性亦为右结合。 对指针变量,进行取内容运算可以得到指针变量所指 向的数据。 取内容运算与取地址运算实质上是一对互逆运算。 例如: int a, *p=&a; *(&a)就是a,&(*p)就是p; p指向a, *p与a等 价
第10章指针类型 2.算术运算 1)加减运算 加减运算常用于数组的处理。对指向一般数据的指针, 加减运算无实际意义。例如:青 inta[10],p=a,*x;蕌 ⅹ=p+3;/*实际上是p加上3*2个字节赋给ⅹ,x指向数 组的第三个分量* 对于不同基类型的指针,指针变量“加上”或“减去” 个整数n所移动的字节数是不同的。例如:蕌 float a[10],*=a,*x;蕌 p=p+3;/*实际上是p加上3*4个字节赋给x,x依然指 向数组的第三个分量*{蕌
第10章 指针类型 2. 算术运算 1) 加减运算 加减运算常用于数组的处理。对指向一般数据的指针, 加减运算无实际意义。例如: int a[10],*p=a,*x; x=p+3; /*实际上是p加上3*2个字节赋给x, x指向数 组的第三个分量*/ 对于不同基类型的指针,指针变量“加上”或“减去” 一个整数n所移动的字节数是不同的。例如: float a[10], *p=a, *x; p=p+3; /*实际上是p加上3*4个字节赋给x, x依然指 向数组的第三个分量*/