指针数组
static int *p[2];
由p[0],p[1]两个指针组成
二级指针
命令行参数
main(int argc,char * argv[])
main(int argc,char** argv)
argc:命令名和所有参数个数之和
argv:各元素是指针,分别指向各参数字符串
例:
void main(int argc,char *argv[])
{
while(argc>1)
{
++argv;
cout << *argv << endl;
--argc;
}
}
指针域函数的关系
1.以指针作为函数参数
以地址方式传递数据的
通过形参指针改变实参指正所指向的数据
减少参数传递过程中的数据复制量
指针型函数
函数的返回值是一个指针型的地址
int *fun(a,b)
指向函数的指针
类型修饰符 (*函数指针名)();
int (*p)(); //p指向一个返回整形值的函数
p=fun();
//p指向函数fun,且函数名后不能写参数,既p = fun(a,b)错,fun(x,y)得到一个函数值,不一定是地址值,而函数名则代表函数入口地址
指向函数的指针调用
(*指针变量)(实参列表)
例如:(*p)(a,b)
fun(a,b)
p(a,b)
引用
引用就是:
1.给某一个常量,变量,数组或者对象起了一个别名
2.对引用的任何操作,都是对被引用的目标的操作
3.引用必须在声明是就初始化
类型修饰符 &引用名 = 被引用的目标的名字;
用引用返回多个值
引用函数
结构的定义
steuct 结构名
{
数据类型 成员名1;
数据类型 成员名2;
......................
}
例子:
struct person
{
char name[10];
bool sex;
int age ;
}
结构变量
结构指针:定义一个指针,是指向这个结构体的变量
用结构指针访问结构成员变量
(*结构指针名).成员名
结构指针名->成员名
运算次序
++pman->name 等同于 ++(pman->name)
*pman->name 等同于 *(pman->name)