指针重温

Posted isadoraytwwt

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了指针重温相关的知识,希望对你有一定的参考价值。

??定义

内存地址的变量。

int a = 3;
int *pa;
pa = &a;  //&为取址运算符,表示取变量a的地址

printf("a = %d
", a);
printf("*pa = %d
", *pa);
printf("pa = %p
", &a);
printf("pa = %p
", pa);

输出结果:技术图片

学习第一步:分清不同变量名最后输出的是什么内容,是地址还是常数。

总结:

a是存放值的变量名,pa是指向变量a的指针变量名,也就是说pa里头存放的是a的地址,所以pa == &a。

*是间接运算符,也可叫做取值运算符,也可叫解引用运算符,所以*pa是取pa存放的地址里存放的值 就是3。

??声明指针

声明指针变量时必须指定指针所指向变量的类型。

声明时,*和指针之间的空格可有可无,通常,程序员在声明时使用空格,在解引用时省略空格。

·编写程序时,可以认为变量有两个属性:名称和值(还有其他性质,例如类型,但是暂且不论)。

·计算机编译和加载程序时,变量也有两个属性:地址和值。地址就是变量在计算机内部的名称。

??指针和数组

**指针和一维数组

一维数组名是数组首元素地址

int array[4] = {0, 1, 2, 3};
int *parray;
int i;
parray = array;

for (i=0; i<4; i++)
    printf("array[%d] = %d
", i, *(parray + i));

编译结果:技术图片

总结:parray + i 表示 &array[i]

**指针和二维数组

 

以上是关于指针重温的主要内容,如果未能解决你的问题,请参考以下文章

重温Javascript

回归基础:重温ARC

重温Javascript-函数

重温委托(delegate)和事件(event)

每天学习亿点点系列——重温单链表

更新:C++ 指针片段