指针操作(学习笔记)

指针的值(该指针指向的地址),储存在指针指向地址上的值,指针自己的地址。

9种不同的操作

1.赋值

  数组名,带地址运算符(&),另一个指针。

2.解引用

  “ * ”:*ptr = 100;  //给出指针指向地址上储存的值

3.取址

  指针变量也有自己的变量名。

4.指针与整数相加

  ptr1 + 4 = &urn[4];    //整数和指针所指向类型的大小(字节)相乘

5.递增指针

  指针移动至数组的下一个元素。ptr++ 相当于把 ptr 的值加上4(int为4字节)——*ptr 从urn[0] 变为urn[1]

6.指针减去一个整数

  ptr3 - 2 == &urn[2];  //原始ptr3指向&arn[4]

7.递减指针

  类似于指针地址。指针移动至数组的下一个元素

8.指针求差

  求差求出数组中两个元素之间的距离。

9.比较

指针的两个用法:

1.在函数间传递信息(如果希望在被调函数中改变主调函数的变量,必须使用指针)。

2.指针被用在处理数组的函数中。

指针数组、函数指针、指向指针的指针数组、指向函数的指针数组。

保护数组中的数据:

  编写一个处理基本类型(如,int)的函数时,此时选择传递:1.int类型的值;2、指向int的指针。  

  通常都是直接传递数值,只要程序需要在函数中改变该数值时,才会传递指针。

  对于数组,必须传递指针。

如果函数的意图不是修改数组中的数据内容,那么在函数原型和函数定义中声明形式参数时应使用关键字const。例如:int sum(const, int ar[], int n);

一般情况:

1.如果编写的函数需要修改数组,声明形参时不适用const;

2.如果编写的函数不用修改数组,那么声明数组形参时最好使用const。

原文地址:https://www.cnblogs.com/oucxlw/p/9161637.html