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萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章