0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

為什么指針之間不要隨意賦值呢?

學(xué)益得智能硬件 ? 來(lái)源:學(xué)益得智能硬件 ? 2024-03-28 17:13 ? 次閱讀

指針之間也不能隨意賦值。

看個(gè)比較典型的C語(yǔ)言筆試題。

21a944b2-ece3-11ee-a297-92fbcf53809c.png

有三個(gè)定義,問(wèn)以下賦值語(yǔ)句哪幾個(gè)不正確?

大家也不妨把視頻暫停思考一下,把答案留在評(píng)論區(qū)。

s 是個(gè)二維數(shù)組,三行十列;

k 是個(gè)指針,指向有三個(gè)元素的數(shù)組;

p 就是個(gè)簡(jiǎn)單的 char 類型指針。

第一個(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)容及配圖由入駐作者撰寫或者入駐合作網(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)投訴
  • C語(yǔ)言
    +關(guān)注

    關(guān)注

    180

    文章

    7575

    瀏覽量

    134046

原文標(biāo)題:指針之間不要隨意賦值

文章出處:【微信號(hào):學(xué)益得智能硬件,微信公眾號(hào):學(xué)益得智能硬件】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    DSP中怎么給地址指針賦值

    地址指針是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

    SBUF怎么賦值?

    要發(fā)送出去數(shù)據(jù)就是給SBUF賦值,可是賦值之后接收到的和賦給SBUF的值不一樣?接收到的數(shù)據(jù)為什么不是5?? 用LabVIEW讀取的也是這樣 85 85 85。不知道是哪里出錯(cuò)了,
    發(fā)表于 08-14 22:46

    c語(yǔ)言指針

    ,是多少,結(jié)果是11,因?yàn)槲覀兪褂?p賦值,就相當(dāng)于a=11,賦值效果一樣的。3:指針指針,是面對(duì)于
    發(fā)表于 09-19 00:12

    dd的值沒(méi)有賦值指針

    :unsigned char *gets;將數(shù)組的值賦給指針用strcpy函數(shù)。strcpy((unsigned char *)gets,(const unsigned char *)dd);這樣寫對(duì)不對(duì)。我通過(guò)測(cè)試,dd的值并沒(méi)有賦值
    發(fā)表于 04-03 00:31

    【設(shè)計(jì)技巧】指針的使用注意事項(xiàng):空指針、指針賦值、void *指針

    ,比如讀、寫、調(diào)用函數(shù)等。 2、永遠(yuǎn)不要使用“野”指針 前面說(shuō)了,指針的內(nèi)容是 地址,是內(nèi)存地址,一旦你擁有了一個(gè)指針,你也就有了權(quán)力去通過(guò)這個(gè)
    發(fā)表于 08-20 08:30

    為什么代碼會(huì)產(chǎn)生來(lái)自不兼容指針類型的賦值

    嗨,盡管閱讀了幾個(gè)互聯(lián)網(wǎng)和論壇的問(wèn)題/答案,我還是不明白為什么下面的代碼會(huì)產(chǎn)生“來(lái)自不兼容指針類型的賦值”。為什么這個(gè)警告的代碼運(yùn)行正常?嫦娥發(fā)出同樣的警告。問(wèn)候語(yǔ),CJ。
    發(fā)表于 04-26 12:47

    C語(yǔ)言指針的內(nèi)容

    是一個(gè)指針,指針指向一個(gè)地址,我們不能把值10賦給一個(gè)地址。因此我們?nèi)绻?b class='flag-5'>賦值只能這樣做:b=&a。把a(bǔ)取地址就可以賦值指針了。同時(shí),在
    發(fā)表于 12-18 14:10

    給C語(yǔ)言指針賦值有何作用

    給C語(yǔ)言指針賦值有何作用?給普通變量的賦值與給指針變量的賦值有何不同?
    發(fā)表于 02-25 06:10

    c語(yǔ)言函數(shù)指針定義,指針函數(shù)和函數(shù)指針的區(qū)別

     往往,我們一提到指針函數(shù)和函數(shù)指針的時(shí)候,就有很多人弄不懂。下面就由小編詳細(xì)為大家介紹C語(yǔ)言中函數(shù)指針,指針函數(shù)和函數(shù)指針
    發(fā)表于 11-16 15:18 ?3552次閱讀

    深入了解void指針背后的機(jī)理

    當(dāng)使用關(guān)鍵字void聲明指針變量時(shí),它將成為通用指針變量。任何數(shù)據(jù)類型(char,int,float等)的任何變量的地址都可以賦值給void指針變量。
    發(fā)表于 05-06 09:49 ?1296次閱讀

    VerilogHDL語(yǔ)言:清阻塞賦值和非阻塞賦值

    對(duì)于VerilogHDL語(yǔ)言中,經(jīng)常在always模塊中,面臨兩種賦值方式:阻塞賦值和非阻塞賦值。對(duì)于初學(xué)者,往往非常迷惑這兩種賦值方式的用法,本章節(jié)主要介紹這兩種文章的用法。其實(shí),有
    發(fā)表于 11-19 15:48 ?1070次閱讀

    51單片機(jī)-指針方法-串口實(shí)例

    51單片機(jī)-指針1. 指針變量a的指針=變量a的地址再定義一個(gè)變量p,來(lái)存放a的地址(指針),p就是指針變量,簡(jiǎn)稱
    發(fā)表于 11-12 09:51 ?33次下載
    51單片機(jī)-<b class='flag-5'>指針</b>方法-串口實(shí)例

    C語(yǔ)言指針的理解使用

    C語(yǔ)言指針的理解使用指針變量的聲明給普通變量的賦值對(duì)比給指針變量的賦值代*的指針的使用說(shuō)明
    發(fā)表于 01-13 13:42 ?3次下載
    C語(yǔ)言<b class='flag-5'>指針</b>的理解使用

    求求你,不要再糾結(jié)指針了(2)——函數(shù)指針

    如果說(shuō)指針在一些人心中是導(dǎo)致代碼“極其不穩(wěn)定的奇技淫巧”,那么“函數(shù)指針”則是導(dǎo)致代碼跑飛和艱澀難懂的罪魁禍?zhǔn)住H欢?,函?shù)指針的定...
    發(fā)表于 01-26 19:51 ?2次下載
    求求你,<b class='flag-5'>不要</b>再糾結(jié)<b class='flag-5'>指針</b>了(2)——函數(shù)<b class='flag-5'>指針</b>

    阻塞賦值與非阻塞賦值

    ”=“阻塞賦值與”
    的頭像 發(fā)表于 09-12 09:06 ?905次閱讀
    阻塞<b class='flag-5'>賦值</b>與非阻塞<b class='flag-5'>賦值</b>