第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

數(shù)組變量是const的指針怎么理解呢?

數(shù)組變量是const的指針怎么理解呢?

C
Single丶love 2016-08-14 23:32:00
但我們不是依然可以在初始化之后改變數(shù)組單元的值嗎,就像a[0]=10,但const不是不允許改變嗎?這個數(shù)組變量是const的指針怎么理解呢?求詳細一點啊,萬分感謝!怎么利用這個解釋 int b[]=a ; 是錯誤的呢?
查看完整描述

5 回答

已采納
?
揍扁扁了

TA貢獻11條經(jīng)驗 獲得超4個贊

? ? ? ? 首先先對比一下int * const arr 和 int const * arr的區(qū)別吧。前者的const作用在arr上,arr的值不可以變,比如arr++就是錯誤的。后者作用在* arr上,即不能通過arr去改變它所指向的地址里存儲的值,即*arr = 10是錯誤的。這就解釋了第一個問題。

? ? ? ? 其次,int a[]的方式聲明了一個本地變量,一經(jīng)聲明便分配了一段固定的連續(xù)的內(nèi)存單元。a是這段存儲單元的首地址,如同上邊說的一樣a是一個常量。int b[],b也是一個常量。常量 = 常量?這顯然是錯的。這就解釋了第二個問題。

? ? ? ?至于為什么把數(shù)組名設計為一個常量,希望有大神可以解惑^_^

查看完整回答
2 反對 回復 2017-08-23
?
hust_web

TA貢獻4條經(jīng)驗 獲得超0個贊

1.首先一個數(shù)組,比如a[10] ,它的首地址a和指針不一樣,你不能再對a賦值,比如你寫的int b[10]; b=a;是錯誤的,

2.其次const修飾數(shù)組,比如const int a[10]= {1}; 說明里面的數(shù)據(jù)是常量,你再寫a[0] = 1之類出錯。

3. 還有const int a[10] = {1}中的a[0] = 1沒問題,但是a[0] 和const int b = 1 的b也有區(qū)別,比如:

????const int a[10] = {1}; int arr[ a[0] ] = {0}; 會出錯

????const int b=1; ? int arr[b] = {1} = {0}; ? 沒問題

????至于為什么,還不知道,希望大神解答。


查看完整回答
反對 回復 2016-08-21
?
凌小天3635910

TA貢獻17條經(jīng)驗 獲得超13個贊

數(shù)組名絕對不等于指針,而且不是指針。
  數(shù)組名是指針常量,地址是絕對的,score指向受保護,但首地址的內(nèi)容可以改變,所以數(shù)組首地址應該是指針常量int *const score。
  指針是一個變量,變量的值是另外一個變量的地址。那么,既然指針是變量,那么指針必然有自己的存儲空間,只不過是該存儲空間內(nèi)的值是一個地址值,而不是別的內(nèi)容。


摘自百度知道。

查看完整回答
反對 回復 2016-08-15
?
繁華如夢傾城殤

TA貢獻23條經(jīng)驗 獲得超6個贊


數(shù)組變量是一個指針,它指向的內(nèi)容是const int 類型。數(shù)組變量本身不用初始化它可以指向任何標示符,但它指向的內(nèi)容是不能被改變的

查看完整回答
反對 回復 2016-08-15
?
木柘

TA貢獻143條經(jīng)驗 獲得超94個贊

數(shù)組指針是地址,你所謂的改變是賦值不改變地址。

查看完整回答
反對 回復 2016-08-15
  • 5 回答
  • 0 關注
  • 3977 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號