zoukankan      html  css  js  c++  java
  • 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;
    }
    

     

     

  • 相关阅读:
    CentOS 7 rpm包部署kubernetes 1.20
    基于ipset对大量IP进行封禁(Iptables)
    RPM打包指南
    MySQL主从一致性检查
    基于Docker+Jenkins+Git的发布环境
    MySQL管理工具集MySQL Utilities | 利用frm和ibd文件恢复表数据
    MySQL日志解析工具资料汇总
    MySQL之—分库分表的技巧
    MySQL之查询重复记录、删除重复记录方法大全
    一个爬虫
  • 原文地址:https://www.cnblogs.com/sxy-798013203/p/7751322.html
Copyright © 2011-2022 走看看