色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

指針的加法操作

學益得智能硬件 ? 來源:學益得智能硬件 ? 2023-03-29 10:12 ? 次閱讀

指針的加法操作我們見過很多,但是減法操作遇到的好像很少。

有這么一個筆試題:

inta[]={1,2, 3};
int *p1 = &a[0];
int *p2 = &a[2];


printf("%ld
", p2 - p1);
一個數組,兩個指針,指針p1指向數組第一個元素,指針p2指向數組第三個元素,問p2-p1的結果是多少?

我覺得答案應該分兩種,8或者2。

結果8是因為一個整數占了4個字節,兩個整數當然是8個字節。

結果2是因為他們相差了兩個元素。


下面還是敲代碼試一下,直接用printf輸出結果,選擇%ld作為輸出格式。
root@Turbo:test# ./test 
2
root@Turbo:test#
結果是2。

所以相同類型指針做減法操作的時候,結果還是元素的個數。

就好像p1+2加的是8個字節而不是2個字節一樣。


最后,給大家留個問題,如果希望printf輸出的結果是8,那代碼應該怎么修改?

答案:

對指針進行強制類型轉換,可以轉換成整型或者字符型指針。
printf("%lu
", (int)p2 - (int)p1);
printf("%lu
", (char *)p2 - (char *)p1);

審核編輯:湯梓紅

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

    關注

    0

    文章

    234

    瀏覽量

    25314
  • 指針
    +關注

    關注

    1

    文章

    483

    瀏覽量

    70706
  • 代碼
    +關注

    關注

    30

    文章

    4857

    瀏覽量

    69529
  • 數組
    +關注

    關注

    1

    文章

    418

    瀏覽量

    26108

原文標題:指針減法

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

收藏 人收藏

    評論

    相關推薦

    函數指針的使用簡述

    函數指針在Linux內核和C語言開發中用的非常多,而且在設計操作系統的時候也會用到,因此這里將詳細講解函數指針。既然函數指針也是指針,那函數
    的頭像 發表于 09-09 08:56 ?2073次閱讀
    函數<b class='flag-5'>指針</b>的使用簡述

    指針變量的基本操作

    指針變量也是一個變量,對應一塊內存空間,對應一個內存地址,指針名就是己址。這空內存空間多大?一個機器字長(machine word),32位的CPU和操作系統就是32個位,4個字節,其值域為
    發表于 10-26 09:56 ?475次閱讀

    C語言:指針運算

    元素的位置,以此類推。把一個指針減去3使它向左移動3個元素的位置。要注意的是,如果進行完加法或者減法運算后,指針指向的位置不在數組的范圍內,則發生了數組越界。對這個指針執行間接訪問,即
    發表于 01-11 15:11

    【原創】聊一聊內存指針操作

    中,各種處理器都有對內存的不同的尋址方式讀寫內存。在高級語言中,C語言是唯一可以進行內存操作的語言,C語言對內存的操作主要需要通過指針來完成。1、使用指針
    發表于 07-28 09:10

    C語言入門教程-指向指針指針

    指向指針指針 創建一個指針,使它指向另一個指針,這是可能的,而且常常也是必要的。這一技術有時被稱為句柄。在某些情況下,操作系統需要有自主
    發表于 07-29 12:10 ?1113次閱讀

    加法器,加法器是什么意思

    加法器,加法器是什么意思 加法器 :  加法器是為了實現加法的。  即是產生數的和的裝置。加數和被加數為輸入,和數與
    發表于 03-08 16:48 ?5624次閱讀

    補碼加法,補碼加法計算原理

    補碼加法,補碼加法計算原理    負數用補碼表示后,可以和正數一樣來處理。這樣,運算器里只需要一個加法器就可以了,不必為了負數的加法運算,再配一個減
    發表于 04-13 11:41 ?1.8w次閱讀

    為什么使用指針?C++中的“指針

    為什么使用指針?因為在操作大型數據和類時,指針可以通過內存地址直接訪問數據,可避免在程序中復制大量的代碼,因此指針的效率最高。一般來說,指針
    的頭像 發表于 10-04 10:33 ?5252次閱讀

    加法器原理

    加法器是產生數的和的裝置。加數和被加數為輸入,和數與進位為輸出的裝置為半加器。若加數、被加數與低位的進位數為輸入,而和數與進位為輸出則為全加器。常用作計算機算術邏輯部件,執行邏輯操作、移位與指令調用
    的頭像 發表于 06-19 14:20 ?2.6w次閱讀
    <b class='flag-5'>加法</b>器原理

    理解函數指針、函數指針數組、函數指針數組的指針

    理解函數指針、函數指針數組、函數指針數組的指針
    的頭像 發表于 06-29 15:38 ?1.5w次閱讀
    理解函數<b class='flag-5'>指針</b>、函數<b class='flag-5'>指針</b>數組、函數<b class='flag-5'>指針</b>數組的<b class='flag-5'>指針</b>

    加法器工作原理_加法器邏輯電路圖

    加法器是產生數的和的裝置。加數和被加數為輸入,和數與進位為輸出的裝置為半加器。若加數、被加數與低位的進位數為輸入,而和數與進位為輸出則為全加器。常用作計算機算術邏輯部件,執行邏輯操作、移位與指令調用
    發表于 02-18 14:40 ?3.3w次閱讀
    <b class='flag-5'>加法</b>器工作原理_<b class='flag-5'>加法</b>器邏輯電路圖

    STM32位帶引申的指針變量問題

    位帶操作牽涉到的一個重要知識點就是指針變量。這種位帶映射操作,就是操作映射過后的地址,其實就是操作指針
    發表于 02-08 15:57 ?3次下載
    STM32位帶引申的<b class='flag-5'>指針</b>變量問題

    加法器的原理及采用加法器的原因

    有關加法器的知識,加法器是用來做什么的,故名思義,加法器是為了實現加法的,它是一種產生數的和的裝置,那么加法器的工作原理是什么,為什么要采用
    的頭像 發表于 06-09 18:04 ?5339次閱讀

    串行加法器和并行加法器的區別?

    串行加法器和并行加法器是兩種基本的數字電路設計,用于執行二進制數的加法運算。它們在設計哲學、性能特點以及應用場景上有著明顯的區別。
    的頭像 發表于 05-23 15:06 ?3023次閱讀

    C語言指針運算符詳解

    在C語言中,當你有一個指向數組中某個元素的指針時,你可以對該指針執行某些算術運算,例如加法或減法。這些運算可以用來遍歷數組中的元素,如ptr[i]等價于*(ptr + i)。然而,如果你的操作
    的頭像 發表于 10-30 11:16 ?383次閱讀
    主站蜘蛛池模板: 扒开美女下面粉嫩粉嫩冒白浆 | 怪物高h粗暴无尽 | 日韩中文无线码在线视频 | 亚洲欧美一区二区三区九九九 | 757一本到午夜宫 | 好吊妞国产欧美日韩视频 | 国产视频精品免费 | 亚洲乱色视频在线观看 | 视频一区二区中文字幕 | 和尚轮流澡到高潮H | 国产三级多多影院 | 亚洲人成电影网站色2017 | 亚洲AV无码一区二区三区乱子伦 | 牛牛在线1视频 | 九九热这里只有精品视频免费 | 含羞草影院AE在线观看 | 爱人 qvod| 美女图片131亚洲午夜 | 春水福利app导航 | 日本亚洲精品色婷婷在线影院 | 扒开女人下面使劲桶动态图 | 狠狠插综合| 天天躁夜夜踩很很踩2022 | 久亚洲AV无码专区A片 | 国产精品国产三级国产an | 女同给老师下媚药 | 在线精品国精品国产不卡 | 艳鉧动漫1~6全集观看在线 | 精品夜夜澡人妻无码AV蜜桃 | 青草影院内射中出高潮-百度 | 岛国在线永久免费视频 | 国产午夜三区视频在线 | 亚洲精品久久AV无码蜜桃 | 99久久国产露脸精品国产吴梦梦 | 亚洲 在线 日韩 欧美 | 欧美成人免费一区二区三区不卡 | 巨污全肉np一女多男 | 久久久久综合一本久道 | 无码国产伦一区二区三区视频 | 儿子操妈妈视频 | 老司机午夜影院试看区 |