相信大家一定对C语言指针有一定了解吧,那么,下面就来复习一下C++指针吧,话不多说,上代码
1.指针与数组 指针和数组是密切相关的。事实上,指针和数组在很多情况下是可以互换的。例如,一个指向数组开头的指针,可以通过使用指针的算术运算或数组索引来访问数组。请看下面的程序:
#include<iostream> using namespace std; int main() { int max=3;//定义一个局部变量 int array[max]={10,20,30};// 定义一个数组 int *p;//定义指针 p=array; //指针指向 for(int i;i<max;i++) //遍历 { cout<<"第i个元素:"<<i<<endl; cout<<"array中的元素是"<<array[i]<<endl; p++; } return 0; }2.指向指针的指针 指向指针的指针是一种多级间接寻址的形式,或者说是一个指针链。通常,一个指针包含一个变量的地址。当我们定义一个指向指针的指针时,第一个指针包含了第二个指针的地址,第二个指针指向包含实际值的位置。 一个指向指针的指针变量必须如下声明,即在变量名前放置两个星号。例如,下面声明了一个指向 int 类型指针的指针:
#include<iostream> using namespace std; int main() { int int a; int *p1; int **p2; a=20; p1=&a;//取地址a p2=&p1;//取地址p2 cout<<"a值为"<<a<<endl; cout<<"p1值为"<<*p1<<endl; cout<<"p2的值为"<<**p2<<endl; return 0; } }3.C++4.C++ 从函数返回指针 C++ 允许您传递指针给函数,同样也允许您从函数返回指针
#include <iostream> #include <ctime> using namespace std; void getSeconds(unsigned long *par); int main () { unsigned long sec; getSeconds( &sec ); // 输出实际值 cout << "Number of seconds :" << sec << endl; return 0; } void getSeconds(unsigned long *par) { // 获取当前的秒数 *par = time( NULL ); return; }4.C++ 从函数返回指针 C++ 允许您传递指针给函数,同样也允许您从函数返回指针
#include<iostream> #include<ctime> #include<cstdlib> using namespace std; int *getRandom() { static int ran[10]; srand( (unsigned)time( NULL ) ); for (int i = 0; i < 10; ++i) { r[i] = rand(); cout << r[i] << endl; } return r; } // 要调用上面定义函数的主函数 int main () { // 一个指向整数的指针 int *p; p = getRandom(); for ( int i = 0; i < 10; i++ ) { cout << "*(p + " << i << ") : "<< *(p + i) << endl; } return 0; }