指針之間也不能隨意賦值。
看個(gè)比較典型的C語(yǔ)言筆試題。
有三個(gè)定義,問(wèn)以下賦值語(yǔ)句哪幾個(gè)不正確?
大家也不妨把視頻暫停思考一下,把答案留在評(píng)論區(qū)。
s 是個(gè)二維數(shù)組,三行十列;
k 是個(gè)指針,指向有三個(gè)元素的數(shù)組;
p 就是個(gè)簡(jiǎn)單的 char 類(lèi)型指針。
第一個(gè) p = s。
s 是二維數(shù)組的數(shù)組名,表示二維數(shù)組首行的地址,如果讓 s 加一,會(huì)加 10 個(gè)字節(jié);
而指針 p 只是個(gè)字符指針,p+1 只加了一個(gè)字節(jié)。
這兩個(gè)含義不一樣,不能賦值。 第二個(gè) p = k。
k 指向的是數(shù)組,p 指向的是字符,同樣也是對(duì)不上,不能賦值。
第三個(gè) p = s[0]。
s[0] 表示數(shù)組首行首元素地址,既然是元素的地址,s[0] 加一,就是加 1 個(gè)字節(jié)。
p也是元素的地址,這兩個(gè)含義一樣,可以賦值。
第四個(gè) k = s。
s 是二維數(shù)組首行的地址,首行有 10 個(gè)元素。
k 雖然也指向一維數(shù)組,但是只有三個(gè)元素,10 個(gè)元素和 3 個(gè)元素也對(duì)不上,不能賦值。
所以答案就是,除了第三個(gè),其他的都不能賦值。
審核編輯:劉清
聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。
舉報(bào)投訴
原文標(biāo)題:指針之間不要隨意賦值
文章出處:【微信號(hào):學(xué)益得智能硬件,微信公眾號(hào):學(xué)益得智能硬件】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
相關(guān)推薦
地址指針是32位的,int *才16為,賦值會(huì)出現(xiàn)截?cái)啾热鏸nt *souraddr;souraddr =(int *)0x40000;出現(xiàn)這個(gè)警告:conversion from integer to smaller pointer查看結(jié)果:souraddr=0求大神指
發(fā)表于 01-31 17:11
要發(fā)送出去數(shù)據(jù)就是給SBUF賦值,可是賦值之后接收到的和賦給SBUF的值不一樣呢?接收到的數(shù)據(jù)為什么不是5呢?? 用LabVIEW讀取的也是這樣 85 85 85。不知道是哪里出錯(cuò)了,
發(fā)表于 08-14 22:46
,是多少呢,結(jié)果是11,因?yàn)槲覀兪褂?p賦值,就相當(dāng)于a=11,賦值效果一樣的。3:指針的指針,是面對(duì)于
發(fā)表于 09-19 00:12
:unsigned char *gets;將數(shù)組的值賦給指針用strcpy函數(shù)。strcpy((unsigned char *)gets,(const unsigned char *)dd);這樣寫(xiě)對(duì)不對(duì)。我通過(guò)測(cè)試,dd的值并沒(méi)有賦值給
發(fā)表于 04-03 00:31
,比如讀、寫(xiě)、調(diào)用函數(shù)等。 2、永遠(yuǎn)不要使用“野”指針 前面說(shuō)了,指針的內(nèi)容是 地址,是內(nèi)存地址,一旦你擁有了一個(gè)指針,你也就有了權(quán)力去通過(guò)這個(gè)指
發(fā)表于 08-20 08:30
嗨,盡管閱讀了幾個(gè)互聯(lián)網(wǎng)和論壇的問(wèn)題/答案,我還是不明白為什么下面的代碼會(huì)產(chǎn)生“來(lái)自不兼容指針類(lèi)型的賦值”。為什么這個(gè)警告的代碼運(yùn)行正常?嫦娥發(fā)出同樣的警告。問(wèn)候語(yǔ),CJ。
發(fā)表于 04-26 12:47
是一個(gè)指針,指針指向一個(gè)地址,我們不能把值10賦給一個(gè)地址。因此我們?nèi)绻?b class='flag-5'>賦值只能這樣做:b=&a。把a(bǔ)取地址就可以賦值給指針了。同時(shí),在
發(fā)表于 12-18 14:10
給C語(yǔ)言指針賦值有何作用?給普通變量的賦值與給指針變量的賦值有何不同?
發(fā)表于 02-25 06:10
往往,我們一提到指針函數(shù)和函數(shù)指針的時(shí)候,就有很多人弄不懂。下面就由小編詳細(xì)為大家介紹C語(yǔ)言中函數(shù)指針,指針函數(shù)和函數(shù)指針
發(fā)表于 11-16 15:18
?3627次閱讀
當(dāng)使用關(guān)鍵字void聲明指針變量時(shí),它將成為通用指針變量。任何數(shù)據(jù)類(lèi)型(char,int,float等)的任何變量的地址都可以賦值給void指針變量。
發(fā)表于 05-06 09:49
?1358次閱讀
51單片機(jī)-指針1. 指針變量a的指針=變量a的地址再定義一個(gè)變量p,來(lái)存放a的地址(指針),p就是指針變量,簡(jiǎn)稱(chēng)
發(fā)表于 11-12 09:51
?33次下載
C語(yǔ)言指針的理解使用指針變量的聲明給普通變量的賦值對(duì)比給指針變量的賦值代*的指針的使用說(shuō)明
發(fā)表于 01-13 13:42
?3次下載
如果說(shuō)指針在一些人心中是導(dǎo)致代碼“極其不穩(wěn)定的奇技淫巧”,那么“函數(shù)指針”則是導(dǎo)致代碼跑飛和艱澀難懂的罪魁禍?zhǔn)?。然而,函?shù)指針的定...
發(fā)表于 01-26 19:51
?2次下載
”=“阻塞賦值與”
發(fā)表于 09-12 09:06
?1044次閱讀
數(shù)組之間的賦值能不能直接使用等于號(hào)?比如這樣的代碼。 int main(){ int a[5] = {1, 2, 3, 4, 5}; int b[5] = {0}; b = a
發(fā)表于 11-26 11:23
?143次閱讀
評(píng)論