C/C++语言指针用法详解 运算符 & 和 *

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C/C++语言指针用法详解 运算符 & 和 *相关的知识,希望对你有一定的参考价值。

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;
}

 技术分享

技术分享

 

 

以上是关于C/C++语言指针用法详解 运算符 & 和 *的主要内容,如果未能解决你的问题,请参考以下文章

C语言指针用法详解 指针的算术运算

go语言学习笔记 — 基础 — 基本数据类型 — 指针:一文详解go指针

C/C++解惑篇*,**,:: ,&,*&,**&和函数传参-七者详解

Go语言基础之指针

C++ 指针与引用详解

C语言---指针变量详解2