C / C ++中的算术指针

如主章中所述,C / C ++中的光标是一个地址,它是数字值。因此,您可以像数字值一样在指针上执行算术操作。有4个算术运算符可用于指针:++, - , +和 - 。

要了解算术指针,我们假设反对是指向1000个地址的整数指针。假设整数为32位,我们在此指针上执行算术操作:

 contro ++ 

现在,在上述操作之后,由于每个节点都会递增一个位置1004位置,它将指向下一个整数,这是当前位置的下一个4个字节。这将将光标移至下一个内存位置,而不会影响内存位置的实际值。如果CONTRO指向地址为1000的字符,则上述操作将指向位置1001,因为下一个字符将在1001处。

在C / C ++中增加光标

我们更喜欢在程序中使用指针,而不是使用数组,因为与数组名称不同,变量指针可以增加,因为它是恒定的指针。以下程序增加了可变指针,以访问数组的每个元素:

 #include using namespace std ; const int MAX = 3 ; int main () { int mang [ MAX ] = { 10 , 100 , 200 }; int * contro ; // bay gio chung ta co mot mang dia chi trong con tro. contro = mang ; for ( int i = 0 ; i < MAX ; i ++) { cout << "Dia chi cua mang[" << i << "] = " ; cout << contro << endl ; cout << "Dia chi cua mang[" << i << "] = " ; cout << * contro << endl ; // tro toi vi tri tiep theo contro ++; } return 0 ; } 

运行上述C / C ++程序将产生以下结果:

减少C / C ++的光标

以下程序以减少指针,这将减少其值的值,如下所示:

 #include using namespace std ; const int MAX = 3 ; int main () { int mang [ MAX ] = { 10 , 100 , 200 }; int * contro ; // bay gio chung ta co dia chi cua phan tu cuoi trong con tro. contro = & mang [ MAX - 1 ]; for ( int i = MAX ; i > 0 ; i --) { cout << "Dia chi cua mang[" << i << "] = " ; cout << contro << endl ; cout << "Dia chi cua mang[" << i << "] = " ; cout << * contro << endl ; // tro toi vi tri o truoc contro --; } return 0 ; } 

运行上述C / C ++程序将产生以下结果:

比较C / C ++中的指针

可以使用关系运算符(例如==,<,and>)比较指针。如果P1和P2指向彼此相关的变量,例如同一数组的元素,则可以有意义地比较P1和P2。

以下程序通过增加变量指针来修改上一个示例,以使其指向的地址小于或等于数组的最后一个元素的地址,&var [max -1]:

 #include using namespace std ; const int MAX = 3 ; int main () { int mang [ MAX ] = { 10 , 100 , 200 }; int * contro ; // bay gio chung ta co dia chi cua phan tu dau tien trong con tro. contro = mang ; int i = 0 ; while ( contro <= & mang [ MAX - 1 ] ) { cout << "Dia chi cua mang[" << i << "] = " ; cout << contro << endl ; cout << "Dia chi cua mang[" << i << "] = " ; cout << * contro << endl ; // tro toi vi tri o truoc contro ++; i ++; } return 0 ; } 

运行上述C / C ++程序将产生以下结果:

根据TutorialSpoint

上一篇文章:C / C ++中的光标null

下一篇文章:C / C ++中的光标null

可能有兴趣