指针的概念:指针就是地址,地址就是指针。指针变量是存放内存单元地址的变量。指针本质就是一个操作受限的非负整数
地址:内存单元的编号。从0开始的非负整数 范围:0--FFFFFFFF [ 0 --> (4G-1) ](当内存大小为4G的时候)
地址的用途如下:
cpu -->内存 通过三根线连接,数据线、地址线、控制线。
数据线用于传送数据
地址线用于传送地址
控制线用于传送操作符/运算符
代码理解
#include<studio.h>
int main(void){
int *p;
int i=10;
int j;
p = &j;
j = *p;
print(i="%d,j=%d,,*p=%d/n",i,j,*p)
//输出 i=10,j-10 , *p=10
}
C语言中 用做修饰符时,*表示指针,&表示别名
int *p; // p是一个指针
int &a = b; //a是b的别名(必须初始化)
C语言中用作运算符时,*表示取值,&表示取地址
int a = 1;
p = &j; //取j的地址并初始化指针p
j = *p; //修改p指向的值为2(j变成了2)
指针和数组
一维数组名是一个指针常量
它存放的是一维数组第一个元素的地址,
他的值不能被改变
一维数组名指向的是数组的第一个元素
一个字节8位,一个地址也是8位,一个字节代表一个地址。但一般存放首地址位置,