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