指针是C语言中的变量数组
-由于是变量,因此用于保存具体值ide
-特殊之处,指针保存的值是内存中的地址函数
-内存地址是什么?指针
内存是计算机中的存储部件,每一个存储单元有固定惟一的编号blog
内存中存储单元的编号即内存地址内存
程序中的一切元素都存在于内存中,所以,可经过内存地址访问程序元素。it
获取地址io
-C语言中经过&操做符获取程序元素的地址class
-&可获取变量,数组,函数的起始地址容器
-内存地址的本质是一个无符号整数(4字节或8字节) 32位与64位
#include <stdio.h> int main() { int var = 0; printf("var = %d\n", var); printf("&var = %p\n", &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\n", var); printf("1. pVar = %p\n", pVar); pVar = &var; *pVar = 100; printf("2. var = %d\n", var); printf("2. pVar = %p\n", pVar); return 0; }
指针是C语言中的变量(本质为容器)
指针专用于保存程序元素的内存地址
可以使用*操做符经过指针访问程序元素自己
指针也有类型,指针类型由数据类型+ * 构成