吴忠躺衫网络科技有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

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

學益得智能硬件 ? 來源:學益得智能硬件 ? 2024-03-28 17:13 ? 次閱讀

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

看個比較典型的C語言筆試題。

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

有三個定義,問以下賦值語句哪幾個不正確?

大家也不妨把視頻暫停思考一下,把答案留在評論區。

s 是個二維數組,三行十列;

k 是個指針,指向有三個元素的數組;

p 就是個簡單的 char 類型指針。

第一個 p = s。

s 是二維數組的數組名,表示二維數組首行的地址,如果讓 s 加一,會加 10 個字節;

而指針 p 只是個字符指針,p+1 只加了一個字節。

這兩個含義不一樣,不能賦值。 第二個 p = k。

k 指向的是數組,p 指向的是字符,同樣也是對不上,不能賦值。

第三個 p = s[0]。

s[0] 表示數組首行首元素地址,既然是元素的地址,s[0] 加一,就是加 1 個字節。

p也是元素的地址,這兩個含義一樣,可以賦值。

第四個 k = s。

s 是二維數組首行的地址,首行有 10 個元素。

k 雖然也指向一維數組,但是只有三個元素,10 個元素和 3 個元素也對不上,不能賦值。

所以答案就是,除了第三個,其他的都不能賦值。



審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • C語言
    +關注

    關注

    180

    文章

    7614

    瀏覽量

    137739

原文標題:指針之間不要隨意賦值

文章出處:【微信號:學益得智能硬件,微信公眾號:學益得智能硬件】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    DSP中怎么給地址指針賦值

    地址指針是32位的,int *才16為,賦值會出現截斷比如int *souraddr;souraddr =(int *)0x40000;出現這個警告:conversion from integer to smaller pointer查看結果:souraddr=0求大神指
    發表于 01-31 17:11

    SBUF怎么賦值?

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

    c語言指針

    ,是多少,結果是11,因為我們使用*p賦值,就相當于a=11,賦值效果一樣的。3:指針指針,是面對于
    發表于 09-19 00:12

    dd的值沒有賦值指針

    :unsigned char *gets;將數組的值賦給指針用strcpy函數。strcpy((unsigned char *)gets,(const unsigned char *)dd);這樣寫對不對。我通過測試,dd的值并沒有賦值
    發表于 04-03 00:31

    【設計技巧】指針的使用注意事項:空指針、指針賦值、void *指針

    ,比如讀、寫、調用函數等。 2、永遠不要使用“野”指針 前面說了,指針的內容是 地址,是內存地址,一旦你擁有了一個指針,你也就有了權力去通過這個
    發表于 08-20 08:30

    為什么代碼會產生來自不兼容指針類型的賦值

    嗨,盡管閱讀了幾個互聯網和論壇的問題/答案,我還是不明白為什么下面的代碼會產生“來自不兼容指針類型的賦值”。為什么這個警告的代碼運行正常?嫦娥發出同樣的警告。問候語,CJ。
    發表于 04-26 12:47

    C語言指針的內容

    是一個指針,指針指向一個地址,我們不能把值10賦給一個地址。因此我們如果要賦值只能這樣做:b=&a。把a取地址就可以賦值指針了。同時,在
    發表于 12-18 14:10

    給C語言指針賦值有何作用

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

    c語言函數指針定義,指針函數和函數指針的區別

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

    深入了解void指針背后的機理

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

    51單片機-指針方法-串口實例

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

    C語言指針的理解使用

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

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

    如果說指針在一些人心中是導致代碼“極其不穩定的奇技淫巧”,那么“函數指針”則是導致代碼跑飛和艱澀難懂的罪魁禍首。然而,函數指針的定...
    發表于 01-26 19:51 ?2次下載
    求求你,<b class='flag-5'>不要</b>再糾結<b class='flag-5'>指針</b>了(2)——函數<b class='flag-5'>指針</b>

    阻塞賦值與非阻塞賦值

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

    數組名之間可以直接賦值

    數組之間賦值能不能直接使用等于號?比如這樣的代碼。 int main(){ int a[5] = {1, 2, 3, 4, 5}; int b[5] = {0}; b = a
    的頭像 發表于 11-26 11:23 ?214次閱讀
    鼎龙百家乐的玩法技巧和规则| 游戏厅百家乐官网软件| 六合彩网站| 88娱乐城| 钱隆百家乐破解版| 百家乐电子游戏试| 红宝石百家乐的玩法技巧和规则| 曼哈顿百家乐的玩法技巧和规则| 送58百家乐的玩法技巧和规则| 威尼斯人娱乐城反水| 现金网系统出租| 皇冠网小说网站网址| 永利高百家乐官网进不去| 百家乐官网览| 龍城百家乐官网的玩法技巧和规则| 网上百家乐心得| 百家乐澳门百家乐澳门赌场| 励骏会百家乐的玩法技巧和规则 | 百家乐园云鼎赌场娱乐网规则| 全讯网999| 海王星国际| 百家乐官网投注窍门| 鼎龙百家乐官网的玩法技巧和规则 | 日博365| 百家乐官网公式论坛| 百家乐官网对付抽水| 百家乐赌场国际| 庞博百家乐的玩法技巧和规则| 大发888怎么找不到了| 凌云县| 百家乐官网赚水方法| 赌百家乐咋赢对方| 百家乐博弈指| 博彩娱乐| 合乐8百家乐官网娱乐城| 百家乐游戏分析| 威尼斯人娱乐城怎么样lm0| 爱赢娱乐| 百家乐官网小钱赢钱| 大世界百家乐娱乐网| 娱乐城送18|