什么是地址?
内存单元的编号
从0开始的非负整数
什么是指针?
指针就是地址,地址就是指针
指针是内存地址,指针变量是用来存放内存地址的变量.
指针和指针变量是两个不同的概念,但是通常我们叙述时会把指针变量简称为指针
指针的本质就是一个操作受限的非负整数
如何使用指针?
1.定义一个指针变量 2.把变量地址赋值给指针 3.访问指针变量中可用地址的值
int *p;什么意思?
p是变量的名字,int *表示p变量存放的是int类型变量的地址
int*p;不表示定义了一个名字叫做*p的变量
int*p;应该这样理解:p是变量名,p变量的数据类型是int *类型
所谓int *类型,实际就是存放int变量地址的类型
p = &i;什么意思?
1.p保存了 i 的地址,因此p指向 i
2.p不是 i ,i 也不是p,更准确地说,修改p的值不影响 i 的值
3.如果一个指针变量指向了某个普通变量,则 *指针变量 就完全等同于 普通变量
例子:
如果p是个指针变量,并且p存放了普通变量i的地址,则p指向了普通变量i
*p 就完全等同于 i
或者说:在所有出现*p的地方都可以替换成 i
在所有出现 i 的地方都可以替换成*p
指针的分类
1.基本类型指针
2.指针和数组
指针和一维数组:
数组名:
一维数组名是个指针常量
它存放的是一维数组第一个元素的地址
它的值不能被改变
一维数组名指向的是数组的第一个元素
下标和指针的关系
a【i】<<==>> *(a+i)
假设指针变量的名字为p
则p+i的值是p+i*(p所指向的变量所占的字节数)
指针变量的运算,
指针变量不能相加,不能相乘,不能相除
如果两指针变量属于同一数组,则可以相减
指针变量可以加减一整数,前提是最终结果不能超过指针
p+i的值是p+i*(p所指向的变量所占的字节数)
p-i的值是p-i*(p所指向的变量所占的字节数)
p++ <==> p+1
3.指针和函数
4.指针和结构体
5.多级指针
标签:变量,指向,--,C语言,int,地址,数组,指针 From: https://www.cnblogs.com/zhaohuimin/p/16971808.html