IT之路-初学指针+数组进一步.ZCSDN.2017.7.20

来源:互联网 发布:有约束的最短路径算法 编辑:程序博客网 时间:2024/06/04 19:41
今天学了神马?指针
什么是指针?指针是内存单元的编号,什么是编号?地址是变量存放在内存单元中的一个编号,内存按照每个字节将内存分成一块一块,每块的编号就是地址
所以指针就是内存地址,指针也有变量,称为指针变量,与其他变量一样,指针变量就是用来存放数据的,而存放的就是指针(地址)。成为指针变量
指针变量的定义 <数据类型> *<指针变量名>  举个栗子:int *p;
&为取地址符 ex:int a;p=&a;就是取变量a的地址放在指针变量p中
*为取指针内容符 ex:int a=3;p=&a;*p == 3 中文解释:指向地址变量p存放的地址内存当中存放的值


数组指针:就是数组的指针 定义int (*a)[5]
指针数组:就是指针的数组    int* a[5]
指针指针:指针的指针    int **p
老师的说法
指针与数组
1.指针数组
    指针的数组,数组中的元素,是指针变量。
int* a[5];


<数据类型*>  <变量名>
int* a


2.数组指针
    数组的指针,占4个字节,指向一个数组。
int (*a)[5];

<数据类型>  <变量>  



int a[i][j][k]  int a[][j][k]={1,2,3}
int (*a)[j][k]


3.指针的指针
    指向指针(地址)的指针变量。
int **p;
此重在理解


4.指针的运算 32位系统的基类型的宽度为32位


(1)指针的加 n、减 n;
     以基类型宽度为单位移动指针
px+n  :  (px)+sizeof(px的类型)*n
px-n  :  (px)-sizeof(px的类型)*n


i char *p;
p+n -> (p)+sizeof(char)*n


(2)两个指针相减
     间隔距离是多少个单位(基类型宽度)
 // px-py: (sizeof(px)-sizeof(py))/sizeof(类型)


数组的分赃
a[2][3][4] 先把a分成两份每份3*4=12个,分完之后再把每份分成3份,每份4个,结束其他多维数组以此类推


数组访问方式
1、下标法:一个个赋值
2指针法:*(*(a+i)+j)具体为什么,暂时没懂


变量:程序语言对存储单元的抽象
七大特征:变量名、地址、(内存)大小、类型、值、生存期、作用域


(1)变量名(name) 标识
(2)地址(address) 存储位置
(3)大小(size) 存储空间
(4)类型(type) 值域和运算集
(5)值  (value) 内容
(6)生存期(lifetime) 存在的时段
(7)作用域(scope) 作用范围


我有点点感觉未来可能不好过!
阅读全文
0 0
原创粉丝点击