日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

c语言 指针 a= amp b,c语言初学-引用和指针的异同点

發布時間:2024/9/19 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c语言 指针 a= amp b,c语言初学-引用和指针的异同点 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

注:(const指針在這里代表的是指向變量的指針,常指針不考慮)

相同點:1.一個const引用可以引用一個非const變量

int a = 3;

const int& b = a;

一個const指針可以指向一個非const變量

int a = 3;

const int* b = &a;

2.一個const引用可以引用一個const變量

const int a = 3;

const int& b = a;

一個const指針可以指向一個const變量

const int a = 3;

const int* b = &a;

3.一個非const引用不可以引用一個const變量

const int a = 3;

int& b = a;//是錯誤的,可以通過b來改變的a的值,但是a在這里是常量,不可以改變

一個非const指針不可以引用一個cosnt變量

const int a = 3;

int* b = &a;//是錯誤的,可以通過b來改變的a的值,但是a在這里是常量,不可以改變

4.指向的都是變量的內存地址。

不同點:1.引用是一個變量的另外一個名字

定義方式:

int a = 3;

int& b = a;//儲存的是值

指針是一個變量的拷貝,復制體

int a = 3;

int* b = &a;//儲存的是地址

2.定義:

引用只能對已經存在的變量或對象實現引用

而指針則不需要,可以定義為空;

3.傳參:

如果傳遞的是一個引用,意味著這個變量或對象已經存在了;

如果傳遞的是一個指針,則不能判斷這個指針是不是有效的,是不是空的 ... ...

所以,引用較為安全。

雖然傳引用較為安全,但是也是利用指針來實現的,所以指針的效率要比引用高一些。

4.引用直接去訪問變量,不用分配自己的內存空間,而指針是間接訪問,需要有自己的內存空間

例子:

//傳引用實現兩個變量的值的交換

#include

void sw(int &,int &);//聲明

int main(int argc,char *argv[]){

int a = 100;

int b = 999;

sw(a,b);

printf("a=%d\n",a);

printf("b=%d\n",b);

}

void sw(int& x,int& y){

int temp = 0;

temp = x;

x = y;

y = temp;

}

//傳引用直接可以把定義的兩個變量賦給函數

//而傳指針要定義兩個指針,然后進行傳遞

#include

void sw(int *,int *);//聲明

int main(int argc,char *argv[]){

int a = 100;

int b = 999;

int* x = &a;//定義指針

int* y = &b;//定義指針

sw(x,y);//傳指針

printf("a=%d\n",a);

printf("b=%d\n",b);

}

void sw(int* x,int* y){

int temp = 0;

temp = *x;

*x = *y;

*y = temp;

}

總結

以上是生活随笔為你收集整理的c语言 指针 a= amp b,c语言初学-引用和指针的异同点的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。