溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

C語(yǔ)言中const如何使用

發(fā)布時(shí)間:2021-07-02 16:36:00 來(lái)源:億速云 閱讀:188 作者:Leah 欄目:編程語(yǔ)言

這篇文章給大家介紹C語(yǔ)言中const如何使用,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。

const可以說(shuō)一種常量的聲明的關(guān)鍵字,如const int a=2;變量a就是一個(gè)常變量,a的值不能被改變,這個(gè)改變是一定意義上的不能改變.而是說(shuō)值的改變不能直接通過(guò)a這個(gè)符號(hào)來(lái)改變.但事實(shí)上,a的值是可能改變的.如下例子:

#include<stdio.h>  int main()  {  const int a=3;  int *p=(int*)&a;  *p=100;  printf("%d",a);  return 0;  }

這樣a的值就被改變了.

const也可以說(shuō)一種只讀的關(guān)鍵字,如

int integerArray[10]={0};  const int* pointer=integerArray;

這里pointer是指向一個(gè)常變量的指針變量.pointer指向可能改變,但它所指向的變量的值就不能直接通過(guò)pointer來(lái)改變.如:

*(p+1)=2;

這是不可以的.但如果有另外一個(gè)數(shù)組integerArray1,p=integerArray1是可以有.還有指向的變量不可改變,這種不可改變是一定意義的改變.如下例子:

#include<stdio.h>  int main()  {   int array[10]={0};  const int *pointer=array;  int *pointer1=(int*)pointer;  pointer1[0]=1;  printf("%d",array[0]);  return 0;  }

以上例子說(shuō)明了,不能直接通過(guò)pointer改變array,但可能間接通過(guò)pointer來(lái)改變array;

現(xiàn)在說(shuō)一說(shuō)有const聲明常指針,它的聲明不像聲明指向常量的指針形式.它的聲明形式為:int* const pointer; .常指針在編程的過(guò)程中它的指向不能改變.因此,常指針在聲明的時(shí)侯一定要給它賦初值.

否則,就不能直接給它賦值.但是,如果一定要給它賦上一定的值,是可以的.如下例子:

#include<stdio.h>  int main()  {  int a=2;  int* const p;  int **p1=(int**)&p;  *p1=&a;  printf("%d",*p);  return 0;  }

經(jīng)過(guò)上面的介紹,相信大家對(duì)指向常量的常指針的聲明也不難寫出吧.它的聲明形式:cont int* const p;它就不用作過(guò)多的介紹了,指向常量的常指針就是指向常量的指針與常指針的復(fù)合了.

關(guān)于C語(yǔ)言中const如何使用就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI