C++之指针的引用与指针的指针讲解-创新互联

1.概念定义

<1>.指针:指针是一个变量,用来存放地址的变量。

创新互联-专业网站定制、快速模板网站建设、高性价比凤冈网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式凤冈网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖凤冈地区。费用合理售后完善,10余年实体公司更值得信赖。
int *p;
*p = 6;
printf("*p = %d\n",*p);

<2>.引用:给一个变量起一个别名。

int a = 5;
int &b = a;
printf("b = %d\n",b);

<3>.指针的引用:其实就是给指针取了个别名而已。

int *p;
*p = 12;
int* &tt = p;
printf("tt = %d\n",*tt);

<4>.指针的指针:指向一级指针变量 的地址。

int *p;
*p = 12;
int **mm = &p;
printf("mm = %d\n",**mm);
2.程序示例
#include#includeusing namespace std;

struct Stu{
  char name[64];
  int age;
};

void test_01(Stu** p){
  //Stu* tmp = (Stu*)malloc(sizeof(Stu));
  Stu* tmp = new Stu;
  tmp->age = 34;  
  memcpy(tmp->name,"Test_01", strlen("Test_01"));
  *p = tmp;// p为二级指针,*p为一级指针
}

//指针的引用,作为函数参数
void test_02(Stu* &p){
  //p = (Stu*)malloc(sizeof(Stu));
  p = new Stu;

  p->age = 56;
  memcpy(p->name,"Test_02", strlen("Test_02"));
}


int main(){
  Stu* stu = NULL;

  test_01(&stu);// 二级指针,一级指针的地址值
  printf("xxx------line = %d, age = %d, name = %s\n",__LINE__,stu->age,stu->name);
  free(stu);

  test_02(stu);
  printf("xxx------line = %d, age = %d, name = %s\n",__LINE__,stu->age,stu->name);
  free(stu);
  
  return 0;
}

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


分享文章:C++之指针的引用与指针的指针讲解-创新互联
网站链接:http://myzitong.com/article/pcjhd.html