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

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次閱讀
    真博国际| 威尼斯人娱乐城佣金| 博狗玩百家乐官网好吗| 百家乐21点游戏| 玩百家乐官网怎么能赢吗| 大发888-dafa888uk.com| 真人百家乐官网海立方| 大发888棋牌游戏| 现场百家乐百家乐| 百家乐官网赌机破解| 文山县| 大发888官方我的爱好| 真人百家乐来博| 百家乐官网赌博规律| 澳博国际娱乐| 大发888下载网址| 百家乐博娱乐网| 乐天堂百家乐官网赌场娱乐网规则| 太子娛樂城网址| 二八杠生死门口诀| 百家乐稳赢战术技巧| 百家乐断缆赢钱| 娱乐网百家乐官网的玩法技巧和规则| 百家乐官网注册赠金| 娱乐城新用户送彩金| 深圳太阳城酒店| 网上百家乐官网哪家最好| 德州扑克发牌视频| 永利高官网| 威尼斯人娱乐城游戏lm0| 单机百家乐破解方法| 百家乐破解之法| 百家乐对打反水| 粤港澳百家乐官网赌场娱乐网规则 | 月亮城百家乐的玩法技巧和规则 | 百家乐官网保单机作弊| 网上百家乐官网的赌博网站| 豪华百家乐官网桌子厂家| 张家口市| 菠菜百家乐官网娱乐城| 百家乐官网哪家有优惠|