C语言指针运算详解

需积分: 0 1 下载量 201 浏览量 更新于2024-07-14 收藏 1.92MB PPT 举报
指针的算术运算-c语言指针知识之二 本章节主要讨论C语言中的指针算术运算,包括指针的加法、减法、自增、自减运算,以及指针之间的相减运算。同时,本章节还讨论了指针变量的概念、指针与数组、字符串、函数之间的关系。 指针算术运算: 在C语言中,指针可以进行算术运算,包括加法、减法、自增、自减运算。这些运算符可以对指针进行操作,使其指向不同的内存地址。 * p ± i ≡ p ± i × d (i为整型数,d为p指向的变量所占字节数) 例如,如果p指向float类型的变量,那么p+1≡p+1×4,意思是p指针向后移动4个字节。 * p++, p--, p+i, p-i, p+=i, p-=i等运算符可以对指针进行操作。 例如,int a[10]; int *p=&a[2]; p++; *p=1; 这个例子中,p指针指向a[2],然后自增1,指向a[3],并将*a[3]赋值为1。 指针之间的相减运算: 如果p1和p2指向同一个数组,那么p1-p2=(p1-p2)/d,意思是p1和p2之间的元素个数。 例如,int a[10]; int *p1=&a[2]; int *p2=&a[5]; 则p2-p1=3,意思是p2和p1之间有3个元素。 指针变量: 指针变量是一个专门存放变量地址的变量。它可以存放变量的地址,然后通过该地址访问变量的值。 * &运算符:取变量的地址 例如,int i; int *i_pointer=&i; 这个例子中,&运算符取变量i的地址,并将其赋值给i_pointer。 * *运算符:取指针所指向变量的内容 例如,int i; int *i_pointer=&i; *i_pointer=20; 这个例子中,*运算符取i_pointer所指向的变量i的内容,并将其赋值为20。 指针与数组、字符串、函数之间的关系: 指针可以与数组、字符串、函数之间建立关系,实现数据的动态分配和访问。 例如,int a[10]; int *p=&a[2]; p++; *p=1; 这个例子中,指针p指向a[2],然后自增1,指向a[3],并将*a[3]赋值为1。 本章节讨论了C语言中的指针算术运算、指针变量的概念、指针与数组、字符串、函数之间的关系,为读者提供了一个系统的指针知识体系。