1.定义
2.应用
其实写完了上一篇博客指针作为函数的参数就体会到了 & 和 *的不同,但是上一篇并不是主角,现在主要总结下。
1)一个错误的说明
int val = 6; int **pval2; /// **三醒指针: 指针 pval2 的类型是 int ** ,指向的类型 int * 只是声明指针并未赋值 pval2 = &val; /// **报错原因——类型不同: 指针 &val2 的类型是 int * ,指向的类型 int 指针指向的值是val
记得以前敲代码总是报这种错误,但是又不懂,现在终于解决了。
2)一个例子验证
#include<bits/stdc++.h> using namespace std; int main() { cout<<"------------------- val 是变量时 :----------------------"<<endl<<endl; int val = 6; cout<<"&val -> "<<&val<<" val -> "<<val<<endl<<endl<<endl; //cout<<"*val -> "<<*val<<endl; 非法访问 *val 没有告诉指向 cout<<"------------------- pval 是一级指针时 :----------------------"<<endl<<endl; int *pval = &val; /// **三醒指针: 指针 pval 的类型是 int * ,指向的类型 int 指向的值为&val cout<<"&pval -> "<<&pval<<" pval -> "<<pval<<" *pval -> "<<*pval<<endl<<endl<<endl; cout<<"------------------- pval2 是二级指针时 :----------------------"<<endl<<endl; int **pval2 = &pval; /// **三醒指针: 指针 pval2 的类型是 int ** ,指向的类型 int * 指向的值为&pval cout<<"&pval2 -> "<<&pval2<<" pval2 -> "<<pval2<<" *pval2 -> "<<*pval2<<" **pval2 -> "<<**pval2<<endl<<endl<<endl; }