C语言指针的定义和使用

一、什么是指针

指针(Pointer)是编程语言中的一个对象,通过地址直接指向内存中该地址的值。由于通过地址能够找到所需的变量存储单元,可以说地址指向该变量存储单元,因此将地址形象化称为"指针"。总而言之,指针就是变量,存放内存单元的地址,存放在指针中的值都会被当作地址处理。

如下图所示:

此时在内存中开辟一块存储空间,存放变量a的值5;同时定义了一个指针变量p,将变量a的地址赋给指针变量p,此时,指针变量p内存放的就是变量a的地址,通过*p即可访问到指针变量p指向地址的数据,即 *p 的值为 5 。

二、指针类型

所有实际数据类型,不管是整型、浮点型、字符型,还是其他的数据类型,对应指针的值的类型都是一样的,都是一个代表内存地址的长的十六进制数。不同数据类型的指针之间唯一的不同是,指针所指向的变量或常量的数据类型不同。

1、指针类型决定了指针进行解引用操作的时候,能够访问空间的大小。

int* p;* p能够访问4个字节

char* p; * p能够访问1个字节

double* p; *p能够访问8个字节

2、指针类型决定了指针的步长。例如:

此时定义了3个类型的指针,分别为char *、int *、double *,分别对其进行加1操作,结果如下:

此时int *类型的指针加1操作的步长为4,char * 类型的指针操作步长为1,double * 类型的指针操作步长为8。

三、指针和数组的关系

数组名即该数组首元素的地址,即数组名就是一个指针。

运行结果:

全部评论

相关推荐

03-25 19:00
东北大学 Java
程序员牛肉:太好了,是聊天记录。不得不信了。 当个乐子看就好,不要散播焦虑
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务