第一关:指针的使用
本关任务:使用指针对三个整数进行排序。
相关知识:
指针的使用
指针是一种特殊的数据类型,它存的是某一个变量的地址,利用这个地址可以间接的访问这个变量。
声明一个指针变量需要指明能够指向的变量的类型,即指针的类型,并且在变量名前面加上
*
,比如:
int *ptr; //声明一个能指向int类型变量的指针
char *str; //声明一个能指向char类型变量的指针
指针变量也是变量,因此也可以有指针的指针,比如:
int **ptr2; //声明一个能指向int*变量,即指针变量的指针
注意:变量名前面的
*
并不是变量名的一部分。与指针相关运算符
如果想要获取一个变量的地址,就可以用**
&
取地址**运算符,比如:
int a = 0;
int *ptr;
ptr = &a; //取得a变量的地址,并将其赋值给ptr
char *str = &a; //错误,指针类型不匹配
有取地址运算符,自然也就有通过地址取值的**
*
指针**运算符,比如:
int a = 0;
int *ptr = &a;
cout << *ptr << endl; //在表达式中是读取所指变量的值
*ptr = 10; //在等号左边是赋值给所指变量
cout << a << endl;
得到的结果是:
0
10
可以看到我们通过指针
ptr
修改了变量a
的值。要注意的是,指针变量虽然存的是地址,但是不能用整型直接赋值的,比如:
int *ptr;
ptr = 10; //错误,不能直接用整型赋值