指针就是用来存放地址。&(取地址)表示取出这个变量的地址符号,*(解引用)指针说明符号,取地址里面的值

指针理解:int A=12;int *p=&A;把12存在变量A空间地址上。把A的空间里面地址存在p指针上。

指针格式:指针虽然指针存放地址,但是也有类型。 int a = 5;               int * p = &a;

#include<stdio.h>
#include<windows.h>

int main() {    
    int a = 5;
    int* p = &a;
    printf("这是指针的值:%d\n",*p);
    printf("这是指针的地址:%p\n", p);
    return 0;
}
指针基础

 数组和指针的关系;一维数组的数组名就是一个指针。

#include<stdio.h>
#include<windows.h>

int main() {    
    int array[5] = { 1,2,3,4,5 };
    int* p = array;
    for (int i = 0; i < 5;i++) {
        printf("直接使用指针作为数组名:%d\n",p[i]);
    }
    system("pause");
    return 0;
}
指针数组关系

 悬空指针:使用完之后(一般就是free释放空间之后)没有及时赋值为NULL的指针就是悬空指针。

野指针:未初始化的指针就是野指针。

指针可以进行运算:但只能进行+-运行运算,被运算的数必须是整数或者是指针。指针和整数运算得到的还是指针。指针-指针=两个地址之间能够存放多少个这样的数据类型。

个人分析:一般变量存的是地址,使用变量时,系统根据变量里面对应地址 去 常量区  查找地址上对应的值。

数组中括号a[0]和*类似解引用的作用。

指针数组:类型为指针的数组。

数组指针:..................懵B了。