变量的地址和指针
-
计算机的内存到底是什么? 是以字节为单位的一片连续存储空间,每一个字节都有一个编号,这个编号就成为内存地址。每个变量的地址是指该变量所占存储单元的第一个字节的地址。
一个变量的数据类型,可能占好几个字节,但是该变量的地址就是好几个字节的第一个的地址。
列:int a =5;
在内存中的存储结构,通过&a可以取出a在内存中的地址。这个地址就叫指针。
- 一种特殊的变量
这种变量只是用来存放内存地址的,起名为指针变量
列:假设定义了一个只存放地址的变量p
把变量a的地址赋予指针变量p,则指针变量p的值为1245052。当访问a时,访问的是5,访问p时,访问的是1245052。
直接访问(熟人访问):访问变量时,直接存取
间接访问(陌生人拿地址访问):通过指针变量,间接访问 - 定义指针变量
类型名 *指针变量名;or 类型名 指针变量名1,指针变量名2,......;
int *p;
定义了p指针变量,指针变量的类型为整型,该变量也只能存放int类型变量的地址。这时我们称int是指针变量p的基类型。指针的移动是按照基类型所占字节数移动的。 - 指向指针的指针
指针变量也是有地址的
int \**p,k,\*s=&k;
p=&s;
\*p=&x;
在声明里面这样写,代表将变量x的地址赋值给指针变量p,出了声明只代表将x的值赋给p。
2.指针变量的定义和指针变量的基本类型
3.给指针变量赋值
4.对指针变量的操作
5.函数之间地址值的传递