zoukankan      html  css  js  c++  java
  • 在C/C++中常用的符号

    C++中&和*的用法一直是非常让人头疼的难点,课本博客上讲这些知识点一般都是分开讲其用法的,没有详细的总结,导致我在这方面的知识结构格外混乱,在网上找到了一篇英文文章简单总结了这两个符号的一些用法,都是一些比较基础的知识,我比较关心的函数指针,指针函数等都没有涉及到,今后有时间把这部分学明白整理出来。

    C/C++中*和&的用法

    C++语言是C语言的超集。几乎所有可以运行的C程序都是可以运行的C++程序。因此,写一个不包含C++特性的C++程序是可能的,尽管cout和引用的使用(见下文)更好的构成了一个C++程序。C++和C在代码格式上偶尔会有不同,比如,在C语言中,我们这样把p声明为一个int类型的指针 int p,而在C++中我们使用int p(编译器并不在意你使用的是哪种格式)。

    在C/C++中,*和&有很多用法,具体的使用要根据代码内容来确定。

    C中*的用法

    (a) 乘法运算:x=y*z;

    (b) 乘法赋值运算:x*=y;相当于x=x*y

    (c) 注释:/这里是你的注释/

    (d) 指针的声明:int p 或 int p; 读法:p是指向一个整数类型的指针。

    (e) 复合指针: int p; 或 int p; 读法 p是一个指向一个指向整数类型的指针的指针。(同样道理, int***p等等)

    (f) 解引用: x=*p 把指针p指向的值赋值给x

    &在C语言中的用法

    (a) 逻辑与:if((a>1)&&(b<0))

    (b) 位运算与:x=a&b;

    (c) 逻辑与赋值:x&=y;与 x=x&y含义相同

    (d) 求地址运算符:p=&x;读法:把x的地址赋给p(指针)

    C++中&的补充用法

    C++中有一种C不存在的变量类型引用变量(简单说来为引用),尽管在C语言中用指针也可以实现类似的功能。

    引用,指针,地址是联系密切的概念。地址是在电脑内存中的地址(一般是一些变量的值在内存中的储存位置),指针是存地址的变量,所以指针可以“指向”内存地址。概念上讲,引用变量本质上是指针的另一个名字(但是并不能被编译器实例化)

    在函数内像其他变量一样定义一个引用是可能的;举例

    void main(void)
    {
    int i;
    int& r = i;

    }
    但是这是没有意义的,因为引用的使用和对引用的变量的使用是一样的。

    引用在函数的参数中被使用。
    void main(void)
    {
    int i=3;
    f(i);
    cout << i;
    }
    void f(int& r)
    {
    r = 2r;
    }
    这段程序输出“6”(2
    r使被r引用的变量加倍,也就是指i)
    在C语言中,实现同样的功能,我们可以通过声明f()为void f(int *r),其中r是指向整数类型的指针,然后调用参数&i(i的地址)调用函数f(),在函数f()内使用r的解引用,但是显然,C++提供了一种更简明的通过引用的方式向函数传值,从函数中返回值。

    付出是用来忘记的,回报时悄然而至的。不要让梦想,只是梦想!!!
  • 相关阅读:
    leetcode 33. Search in Rotated Sorted Array
    leetcode 32. Longest Valid Parentheses
    leetcode 28. Implement strStr()
    leetcode 27. Remove Element
    leetcode 26. Remove Duplicates from Sorted Array
    leetcode 24. Swap Nodes in Pairs
    leetcode 22. Generate Parentheses
    树莓派的频率管理和热控制
    sql执行insert插入一条记录同时获取刚插入的id
    全程直播个人博客重构过程,采用springboot+dubbo+jpa技术栈。
  • 原文地址:https://www.cnblogs.com/SliverLee/p/11186017.html
Copyright © 2011-2022 走看看