指针操作与指针变量相关-指针变量就是存放地址的变量。指针变量的引用主要涉及到两个方面:

(1)对指针变量本身的引用,就是说对指针变量进行的各种运算

(2)对指针变量所指向的目标,对指针进行引用。
通俗的说上述两种情况,一种是对地址的运算,一种是对地址所指向的变量进行间接引用。

跟指针相关的操作符主要有3个:&、*、[]

(1)&:取地址运算符,

(2)*:指针运算符—–取指针所指向的运算符。即:取指针变量(地址)所指向的变量值。

(3)[]:下标操作符—–取指针所指向的操作符。即:取指针变量(地址)所指向的变量值,一般在数组运算中使用的比较多。

指针有6种基本操作,这些操作运行,一般在数组遍历时候才有意义,基于数组在内存中显现排列方式。

接下来举例说明:

void main(){
    //数组在内存中是连续存储的
    int arr[] = {67,10,1,23,50,89,44};
    //数组变量名:arr 就是这个数组的首地址
    printf("%#x\n",arr);//首地址
    printf("%#x\n",&arr);//首地址
    printf("%#x\n",&arr[0]);//首地址
    //上面3条输出结果是一致

    //指针变量
    int *p = arr;
    printf("%d\n",*p);//p值= arr[0]
    printf("%#x\n",p);//指向数组的首地址

    //指针加法
    p++;//p++ 向前移动sizeof(数据类型)字节,这里为int移动4个字节
    int *p1;
    p1 = p +4;
    printf("%#x\n",p);
    printf("%d\n",*p);
    printf("%d\n",*p1);
    //指针减法
    p--;
    printf("%#x\n",p);
    printf("%d\n",*p);
    getchar();
}

1.赋值 ,通常可以是使用数组名或者地址运算符&进行地址赋值,int *p = arr;

2.取值 , 运算符 * 可以取出指针所指向到地址中存储到数值 printf(“%d\n”,*p);
3. 取地址值,指针变量同其他变量一样也具有地址和数值,使用&运算符可以得到指针本身的地址 printf(“%#x\n”,&arr);
4. 整数加给指针 , + 运算符可以将一个整数加给指针,或者把一个指针加上一个整数,两种情况下整数都会和指针所指到内型到字节数相乘,然后把得到的结果加在初始地址上
5.增加指针到值 :可以通过一般到加法或增量运算符俄增加一个指针的值,进行操作后指针将指向该数组的下一个元素,代码中p++ 即使指针从第一个元素指向第二个元素
6.指针减法,同加法运算类似

实例:通过指针给数组赋值

void main(){
    int arr[5];
    int *p = arr;
    int i =0;
    for(;p<arr+5;p++){
        *p = i;
        i++;
    }
    getchar();
}