指针是C语言中的变量
-因为是变量,所以用于保存具体值
-特殊之处,指针保存的值是内存中的地址
-内存地址是什么?
内存是计算机中的存储部件,每个存储单元有固定唯一的编号
内存中存储单元的编号即内存地址
程序中的一切元素都存在于内存中,因此,可通过内存地址访问程序元素。
获取地址
-C语言中通过&操作符获取程序元素的地址
-&可获取变量,数组,函数的起始地址
-内存地址的本质是一个无符号整数(4字节或8字节) 32位与64位
#include <stdio.h> int main() { int var = 0; printf("var = %d ", var); printf("&var = %p ", &var);//取变量的地址 return 0; }
打印了4个字节
指针定义语法:type *pointer
-type - 数据类型,决定访问内存时的长度范围
-* -标志,意味着定义一个指针变量
-pointer -变量名,遵循C语言命名规则
#include <stdio.h> int main() { char *pChar; 1字节 short *pShort; 2字节 int *pInt; 4字节 float *pFloat; double *pDouble; 8字节 return 0; }
指针内存访问:*pointer 访问操作符,访问内存中的数据
-指针访问操作符(*)作用于指针变量即可访问内存数据
-指针的类型决定通过地址访问内存时的长度范围
-指针的类型统一占用4字节或8字节
即:sizeof(type*)==4 或 sizeof(type*)==8
指针程序示例
#include <stdio.h> int main() { int var = 0; int *pVar = NULL; printf("1. var = %d ", var); printf("1. pVar = %p ", pVar); pVar = &var; *pVar = 100; printf("2. var = %d ", var); printf("2. pVar = %p ", pVar); return 0; }
指针是C语言中的变量(本质为容器)
指针专用于保存程序元素的内存地址
可使用*操作符通过指针访问程序元素本身
指针也有类型,指针类型由数据类型+ * 构成