最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C語言中指針常量和常量指針的區(qū)別

 更新時間:2022年01月10日 11:57:04   作者:南城Flipped  
本文主要介紹了C語言中指針常量和常量指針的區(qū)別,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

在面試中我們經(jīng)常會被面試官問到什么是常量指針,什么又是指針常量。

指針常量就是指針本身是常量,指針里面所存儲的內容(內存地址)是常量,不能改變。但是,對應內存地址里存的內容是可以通過指針改變的

常量指針就是指向常量的指針,指針中所存地址中對應的值是常量,不能通過指針來修改它的值。但是,指針自身不是常量,它自身的值可以改變,從而指向另一個地址。

指針常量與常量指針的聲明

指針常量的聲明:數(shù)據(jù)類型 * const 變量名。

常量指針的聲明:數(shù)據(jù)類型 const * 變量名 或者 const 數(shù)據(jù)類型 *變量名。

常量指針常量的聲明:數(shù)據(jù)類型 const * const 變量名或者 const 數(shù)據(jù)類型 * const 變量名。

指針常量與常量指針的使用

1.指針常量例子

/*指針常量*/
/*聲明方式*/
    int a;
    int *const b = &a; //const放在指針聲明操作符的右側
 
/*例子*/
int a=0,b=0; 
int * const p=&a; 
p = &b;//錯誤 
*p = 5;//正確

2.常量指針例子

/*常量指針*/
/*聲明方式*/
//1)
    const int *p;
//2)
    int const *p;
 
/*例子*/
int a=0,b=0; 
int const *p=&a; 
p = &b;//正確 
*p = 5;//錯誤

3.常量指針常量

/*常量指針常量*/
/*聲明方式*/
    const int a = 5;
    const int * const p = &a;   //a值不變,b的指向也不能變
 
/*例子*/
int b = 2;
int a = 5;
const int * const p = &a;
p=&b;//錯誤 
*p=2;//錯誤 

	int a = 5;
	const int b = 6;
	
	const int *c = &a;       // c是指向整形變量a的常量指針 
	const int *d = &b;       // d是指向整形常量b的常量指針 
	
	int *const e = &a;       // e是指向整形變量a的指針常量
	//int *const f = &b;     //報錯提示 無法將const int*賦值給 int *  
	
	const int *const g = &a; // g是指向整形變量a的指針常量
	const int *const h = &b; // h是指向整形常量b的指針常量
	
	printf("a:%d b:%d\n*c:%d c:%d\n*d:%d d:%d\n*e:%d e:%d\n*g:%d g:%d\n*h:%d h:%d\n",a,b,*c,c,*d,d,*e,e,*g,g,*h,h);
	a=3;
 
	c=&b; 					//改變c的指向為b           c值改變 *c改變 
	//*c=b;					//報錯*c是常量 
	d=&a;					//改變d的指向為a 		   d值改變 *d改變 
	//*d=a;					//報錯*d是常量
	 
	//e=&b;					//報錯  常量指針指向無法改變 
	*e=2; 					//此時a的值已經(jīng)變?yōu)?       e值不變	*e改變也就是a值改變 
	
	//g=&b;					//報錯指針指向無法改變 
	//*g=1;					//報錯指向的地址中的值是個常量無法改變 
	//h=&a;					//報錯指針指向無法改變 
	//*h=1; 				//報錯指向的地址中的值是個常量無法改變 
	printf("改變后\n"); 
	printf("a:%d b:%d\n*c:%d c:%d\n*d:%d d:%d\n*e:%d e:%d\n*g:%d g:%d\n*h:%d h:%d\n",a,b,*c,c,*d,d,*e,e,*g,g,*h,h);

程序的輸出結果:

(可以嘗試一下把代碼中的*e=2注釋掉會發(fā)生什么)

總結:

指針常量,指向地址不可變,地址中的值可通過指針改變

常量指針,指向地址中的值不可通過指針改變,指向可變

常量指針常量,指向和指向地址的值都不可通過指針改變

 

附加題

指向常量的指針常量該怎么寫?
答案:

const int * const b = &a;//指向常量的指針常量

 到此這篇關于C語言中指針常量和常量指針的區(qū)別的文章就介紹到這了,更多相關C語言中指針常量和常量指針內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • C語言字符串原地壓縮實現(xiàn)方法

    C語言字符串原地壓縮實現(xiàn)方法

    這篇文章主要介紹了C語言字符串原地壓縮實現(xiàn)方法,包含了字符串的遍歷與轉換等操作,是很實用的操作技巧,需要的朋友可以參考下
    2014-09-09
  • C語言轉義字符實例詳解

    C語言轉義字符實例詳解

    這里主要介紹了C語言的轉義字符的知識,并附有示例代碼,以便理解,希望對學習 C語言的同學有所幫助
    2016-07-07
  • C++實現(xiàn)簡易計算器功能

    C++實現(xiàn)簡易計算器功能

    這篇文章主要為大家詳細介紹了C++實現(xiàn)簡易計算器功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • C語言操作符基礎知識圖文詳解

    C語言操作符基礎知識圖文詳解

    這篇文章主要以圖文結合的方式為大家詳細介紹了C語言位運算基礎知識,感興趣的小伙伴們可以參考一下,希望能給你帶來幫助
    2021-08-08
  • 基于Matlab制作一個數(shù)獨求解器

    基于Matlab制作一個數(shù)獨求解器

    這篇文章主要為大家詳細介紹了如何利用Matlab制作一個數(shù)獨求解器,文中的示例代碼講解詳細,對我們學習Matlab有一定幫助,需要的可以參考一下
    2022-05-05
  • 使用pybind11封裝C++結構體作為參數(shù)的函數(shù)實現(xiàn)步驟

    使用pybind11封裝C++結構體作為參數(shù)的函數(shù)實現(xiàn)步驟

    這篇文章主要介紹了用pybind11封裝C++結構體作為參數(shù)的函數(shù)實現(xiàn)步驟,本文分步驟通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-02-02
  • C++實現(xiàn)日期類的方法詳解

    C++實現(xiàn)日期類的方法詳解

    這篇文章主要給大家介紹了C++實現(xiàn)日期類的方法,文中通過代碼示例給大家介紹的非常詳細,對大家的學習或工作有一定的幫助,需要的朋友可以參考下
    2024-01-01
  • C++共享內存刪除的陷阱

    C++共享內存刪除的陷阱

    這篇文章主要介紹了C++共享內存刪除的陷阱講解,當進程結束使用共享內存區(qū)時,要通過函數(shù) shmdt 斷開與共享內存區(qū)的連接。下面來看看具體問題都是怎么解決的吧
    2022-01-01
  • 對比C語言中getc()函數(shù)和ungetc()函數(shù)的使用

    對比C語言中getc()函數(shù)和ungetc()函數(shù)的使用

    這篇文章主要介紹了對比C語言中getc()函數(shù)和ungetc()函數(shù)的使用,是C語言入門學習中的基礎知識,需要的朋友可以參考下
    2015-08-08
  • C++實現(xiàn)隨機生成迷宮地牢

    C++實現(xiàn)隨機生成迷宮地牢

    這篇文章主要介紹了C++實現(xiàn)隨機生成迷宮地牢的相關資料及代碼分享,推薦給大家,有需要的小伙伴可以參考下。
    2015-03-03

最新評論

吉首市| 五河县| 双牌县| 毕节市| 精河县| 延庆县| 龙岩市| 英德市| 外汇| 射阳县| 宝丰县| 温州市| 聊城市| 喀喇沁旗| 崇礼县| 郸城县| 顺昌县| 霍林郭勒市| 铜梁县| 泰来县| 突泉县| 鹿泉市| 手机| 镇远县| 临邑县| 碌曲县| 收藏| 贵德县| 石台县| 太和县| 额济纳旗| 西峡县| 奇台县| 龙山县| 盘山县| 当涂县| 航空| 麻城市| 安国市| 儋州市| 长乐市|