最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

運(yùn)用指針在不用加號的情況進(jìn)行加法運(yùn)算的講解

 更新時間:2019年01月04日 14:46:17   作者:sdr_zd  
今天小編就為大家分享一篇關(guān)于運(yùn)用指針在不用加號的情況進(jìn)行加法運(yùn)算的講解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧

平常我們進(jìn)行加法運(yùn)算都是用類似以下的代碼進(jìn)行運(yùn)算

#include<stdio.h>
int main()
{
 int a=2,b=3;
 printf("%d\n",a+b);
 return 0;
}

其結(jié)果為 5,對a和b進(jìn)行了加法運(yùn)算

但我們?nèi)绾尾挥眉犹栠M(jìn)行加法運(yùn)算呢?先看一段數(shù)組運(yùn)算

#include<stdio.h>
int main()
{
 int a[]={1,2};
 printf("%d\n",a[0]+a[1]);
 return 0;
}

運(yùn)行結(jié)果是 3 ,它和以下這段代碼是相同的

#include<stdio.h>
int main()
{
 int a[]={1,2};
 printf("%d\n",*(a+0)+*(a+1));
 return 0;
}

因為 a[i]=*(a+i)

接下來我們簡單運(yùn)用一下指針

#include<stdio.h>
int main()
{
 int a=2,b=3;
 int *p=a,*q=b;
 printf("%d\n",*p+*q);
 return 0;
}

p和q分別指向了a和b的地址,將a和b的和計算,結(jié)果是 5

現(xiàn)在運(yùn)用指針和剛才說的a[i]=*(a+i)和變量存放地址進(jìn)行一下結(jié)合

#include<stdio.h>
int main()
{
 int a=2,b=3;
 int *p;
 printf("%d\t%d\n",&a,&b);
 p=&a;
 printf("%d\n",(int)&((char *)a)[b]);
 return 0;
}

輸出結(jié)果是

1638212        1638208
5

前面兩個值分別是a和b的地址,因為是int類型且在我用的32位編譯器中是按四字節(jié)存儲的,然而char類型是按照一個字節(jié)一個字節(jié)存儲的,用指針p指向變量a,先看(char*)a,它是一個強(qiáng)制類型轉(zhuǎn)換,將a這個變量強(qiáng)制轉(zhuǎn)換成char*類型的地址,((char*)a)[b]則是將地址向后移b個字節(jié),但此時的((char*)a)[b]等于*(a+b),我們知道&和*的作用相互抵消的,所以有了&((char*)a)[b],但此時它的類型仍為char*,前面的(int)則是將其強(qiáng)制轉(zhuǎn)換位int進(jìn)行輸出。

當(dāng)時時候用的long定義的a和b,如果強(qiáng)制類型轉(zhuǎn)換為int,long是八字節(jié),而int是四字節(jié),那么就會造成數(shù)據(jù)丟失。

最后說一下剛得知的,可以用指針測試編譯器到底是64位還是32位,64位的編譯器指針變量是8字節(jié),32位的則是4字節(jié)。

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接

相關(guān)文章

  • C++ map詳解

    C++ map詳解

    下面小編就為大家?guī)硪黄獪\談c++中的map。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2021-10-10
  • C++封裝成DLL并調(diào)用的實現(xiàn)

    C++封裝成DLL并調(diào)用的實現(xiàn)

    本文主要介紹了C++封裝成DLL并調(diào)用的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • C語言實現(xiàn)簡單飛機(jī)大戰(zhàn)

    C語言實現(xiàn)簡單飛機(jī)大戰(zhàn)

    這篇文章主要為大家詳細(xì)介紹了C語言實現(xiàn)簡單飛機(jī)大戰(zhàn),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-02-02
  • vscode+platformIO開發(fā)stm32f4的實現(xiàn)

    vscode+platformIO開發(fā)stm32f4的實現(xiàn)

    這篇文章主要介紹了vscode+platformIO開發(fā)stm32f4的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • C++印刷模板使用方法詳解

    C++印刷模板使用方法詳解

    模板是C++支持參數(shù)化多態(tài)的工具,使用模板可以使用戶為類或者函數(shù)聲明一種一般模式,使得類中的某些數(shù)據(jù)成員或者成員函數(shù)的參數(shù)、返回值取得任意類型
    2022-11-11
  • C/C++中退出線程的四種解決方法

    C/C++中退出線程的四種解決方法

    本篇文章是對C/C++中退出線程的四種解決方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • C++中vector的清理回收的方式

    C++中vector的清理回收的方式

    這篇文章主要介紹了C++中vector的清理回收的方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • C++使用extern實現(xiàn)源文件變量與類成員函數(shù)的巧妙共享

    C++使用extern實現(xiàn)源文件變量與類成員函數(shù)的巧妙共享

    C++中使用extern關(guān)鍵字可實現(xiàn)在源文件之間共享變量與類成員函數(shù),通過聲明變量或類在頭文件中,再在一個源文件中定義,其他源文件通過extern引用,促使模塊化、可維護(hù)的代碼組織,這篇文章主要介紹了C++用extern實現(xiàn)源文件變量與類成員函數(shù)的巧妙共享,需要的朋友可以參考下
    2024-03-03
  • FFmpeg實現(xiàn)將編碼后數(shù)據(jù)保存成mp4

    FFmpeg實現(xiàn)將編碼后數(shù)據(jù)保存成mp4

    這篇文章主要為大家詳細(xì)介紹了FFmpeg如何實現(xiàn)將編碼后數(shù)據(jù)保存成mp4,即從內(nèi)存塊中獲取原始數(shù)據(jù),然后依次進(jìn)行解碼、編碼、最后保存成mp4視頻文件,感興趣的可以了解一下
    2023-08-08
  • C語言可變參數(shù)與函數(shù)參數(shù)的內(nèi)存對齊詳解

    C語言可變參數(shù)與函數(shù)參數(shù)的內(nèi)存對齊詳解

    這篇文章主要為大家詳細(xì)介紹了C語言可變參數(shù)與函數(shù)參數(shù)的內(nèi)存對齊,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03

最新評論

驻马店市| 黄冈市| 隆尧县| 额济纳旗| 千阳县| 青州市| 安多县| 洪雅县| 屏边| 江山市| 公安县| 思南县| 阿克| 正镶白旗| 泰安市| 罗江县| 柳州市| 黑水县| 越西县| 兰考县| 灵川县| 江都市| 乐陵市| 永丰县| 怀宁县| 锡林郭勒盟| 随州市| 衡阳市| 新丰县| 五莲县| 巴楚县| 册亨县| 宝丰县| 丹凤县| 阳西县| 南阳市| 玛沁县| 筠连县| 体育| 浪卡子县| 凤城市|