-----------android培训、java培训、java学习型技术博客、期待与您交流!------------
1.地址和指针的概念
内存区的每个字节有一个“号牌”,这就是“地址” 。如果在程序中定义了一个变量进行编译时,系统会给这个变量分配内存单元。
按变量地址存取变量值的方式称为“直接访问”。将变量的地址存放在另一个变量中再访问变量称为“间接访问”。指针就是这种特殊的变量,用来存放地址。
2.指针和指针变量
一个变量的地址称为该变量的“指针”。例如,地址0001是变量a的地址(指针)。如果用一个变量专门用来存放另一变量的地址(即指针),则它称为“指针变量”。
定义指针变量的一般形式为:基类型 *指针变量名: 例如:float *a;
在定义指针变量时要注意:
指针变量前面的“*”,表示该变量的类型为指针型变量。
例: float *a;
指针变量名是a,而不是* a。
在定义指针变量时必须指定基类型。
在引用指针变量时,可能有三种情况:
⑴给指针变量赋值。如:p=&a;
⑵引用指针变量的值。如:printf(“%o”,p);
⑶引用指针变量指向的变量。
有关的两个运算符:
&取地址运算符。&a是变量a的地址。
*指针运算符,*p是指针变量p指向的对象的值。
3.数组元素的指针
一个数组包含若干元素,每个数组元素都在内存中占用存储单元都有相应的地址。指针变量既然可以指向变量,当然也可以指向数组元素。所谓数组元素的指针就是数组元素的地址。
C语言规定在指针指向数组元素时,可以对指针进行以下运算:
加一个整数(用+或+=),如p+1
减一个整数(用-或-=),如p-1
自加运算,如p++,++p
自减运算,如p--,--p
两个指针相减,如p1-p2 (只有p1和p2都指向同一数组中的元素时才有意义)。
用指针变量可以指向一维数组中的元素,也可以指向多维数组中的元素。
4.指向函数的指针
定义:在程序中定义的函数,编译时系统为函数代码分配一段存储空间,这段存储空间的起始地址称为这个函数的指针。可以定义一个指向函数的指针变量,用来存放某一函数的起始地址,这就意味着此指针变量指向该函数。
如果想调用一个函数,除了可以通过函数名调用以外,还可以通过指向函数的指针变量来调用该函数。
5.指针数组
定义:一个数组,若其元素均为指针类型数据,称为指针数组,也就是说,指针数组中的每一个元素都相当于一个指针变量。
一维指针数组的定义形式为:
类型名数组名[数组长度]; 例如:int *p[100];
-----------android培训、java培训、java学习型技术博客、期待与您交流!------------
1.地址和指针的概念
内存区的每个字节有一个“号牌”,这就是“地址” 。如果在程序中定义了一个变量进行编译时,系统会给这个变量分配内存单元。
按变量地址存取变量值的方式称为“直接访问”。将变量的地址存放在另一个变量中再访问变量称为“间接访问”。指针就是这种特殊的变量,用来存放地址。
2.指针和指针变量
一个变量的地址称为该变量的“指针”。例如,地址0001是变量a的地址(指针)。如果用一个变量专门用来存放另一变量的地址(即指针),则它称为“指针变量”。
定义指针变量的一般形式为:基类型 *指针变量名: 例如:float *a;
在定义指针变量时要注意:
指针变量前面的“*”,表示该变量的类型为指针型变量。
例: float *a;
指针变量名是a,而不是* a。
在定义指针变量时必须指定基类型。
在引用指针变量时,可能有三种情况:
⑴给指针变量赋值。如:p=&a;
⑵引用指针变量的值。如:printf(“%o”,p);
⑶引用指针变量指向的变量。
有关的两个运算符:
&取地址运算符。&a是变量a的地址。
*指针运算符,*p是指针变量p指向的对象的值。
3.数组元素的指针
一个数组包含若干元素,每个数组元素都在内存中占用存储单元都有相应的地址。指针变量既然可以指向变量,当然也可以指向数组元素。所谓数组元素的指针就是数组元素的地址。
C语言规定在指针指向数组元素时,可以对指针进行以下运算:
加一个整数(用+或+=),如p+1
减一个整数(用-或-=),如p-1
自加运算,如p++,++p
自减运算,如p--,--p
两个指针相减,如p1-p2 (只有p1和p2都指向同一数组中的元素时才有意义)。
用指针变量可以指向一维数组中的元素,也可以指向多维数组中的元素。
4.指向函数的指针
定义:在程序中定义的函数,编译时系统为函数代码分配一段存储空间,这段存储空间的起始地址称为这个函数的指针。可以定义一个指向函数的指针变量,用来存放某一函数的起始地址,这就意味着此指针变量指向该函数。
如果想调用一个函数,除了可以通过函数名调用以外,还可以通过指向函数的指针变量来调用该函数。
5.指针数组
定义:一个数组,若其元素均为指针类型数据,称为指针数组,也就是说,指针数组中的每一个元素都相当于一个指针变量。
一维指针数组的定义形式为:
类型名数组名[数组长度]; 例如:int *p[100];
-----------android培训、java培训、java学习型技术博客、期待与您交流!------------