今天又回顾了一遍指针,以下是本人的理解
1.什么是指针?
指针是一种存储地址的变量,常见的使用是数据类型加*加变量名:
int * ptr
2.声明中的指针变量名前的星号*️⃣
为了表示这是个指针
3.非声明情况下指针前面的星号*️⃣
表示的是这个指针当前指向地址中所存储的值。注:不可以直接赋值给带星号的指针
4.&符号
&符号非常的常见,比如输出的scanf,表示的就是取其地址,然后以某种形式输出。int num = 1;ptr = &num就表示指针指向num的地址,那ptr = num 等于什么?那就相当于把num的值赋值给ptr,这很好理解,因为指针本身也是一个变量。
注意的几个点:
1.在输出时,*ptr就是它指向地址中的值,ptr就是它自身的值,&ptr则是它的地址
2.指针的指针
int num = 1;ptr = #
int ** ptr2 = &ptr;
⬆️这句话指的是指向➡️已经指向了num地址的ptr的地址,所以当ptr2输出的时候就是ptr的地址,而&ptr2还是ptr2自己的地址。