C和C++中&的差别

  C C++
& 取地址 取地址
位运算 位运算
两个&表示与 两个&表示与
- 引用

1.C++比C多了一种新特性,即引用;如下语句,C语言中会报错,C++中不会,因为C++中这里表示引用:

void fun2(int &p)

C语言中汇报错是因为&p不管是那种用法都不能作为左值

2.C语言中按指针传递参数的例子如下:

#include<stdio.h>

void fun1(int *p)
{
    *p = 2;
    printf("p is %d\n", *p);
}

int main()
{
    int a = 1;
    int *ptr = &a;

    printf("ptr is %d\n", *ptr);
    fun1(&a);//fun1(ptr);运行结果也是一样的
    printf("ptr is %d\n", *ptr);

    getchar();

    return 0;
}

 运行结果如下:

p1

3.C++中&作为引用的例子如下:

#include<stdio.h>

void fun2(int &p)
{
    p = 2;
    printf("p is %d\n", p);
}

int main()
{
    int a = 1;
    int *ptr = &a;

    printf("ptr is %d\n", *ptr);
    fun2(*ptr);
    printf("ptr is %d\n", *ptr);

    getchar();

    return 0;
}

 运行结果和上面的一样,按运用传递参数,传递的是变量本身,不是变量的拷贝。

发布了46 篇原创文章 · 获赞 14 · 访问量 2万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章