日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

sizeof 数组_简单的一维数组竟然有这么多坑?

發布時間:2023/12/19 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 sizeof 数组_简单的一维数组竟然有这么多坑? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

各位,今兒給大家帶來一個不錯的C語言試題,此題對你在C中的數組理解與掌握是個不錯的檢查,話不多說,請看題:

問題是會輸出什么?

我們就開門見山了,通過閱讀代碼發現本體主要考察以下四方面:數組的指針法訪問;數組名和數組名取地址的應用與區別;sizeof關于數組名和其他變量的用法;強制類型轉換。

解析之前我們有兩點需要明確:

1、在C中,幾乎所有使用數組的表達式中,數組名的值是個指針常量,也就是數組第一個元素的地址。它的類型取決于數組元素的類型:如果它們是int類型,那么數組名的類型就是“指向int的常量指針“。——《C和指針》

2、在以下兩中場合下,數組名并不是用指針常量來表示,就是當數組名作為sizeof操作符和單目操作符&的操作數時。sizeof返回整個數組的長度,而不是指向數組的指針的長度。取一個數組名的地址所產生的是一個指向數組的指針,而不是一個指向某個指針常量的指針。所以&a后返回的指針便是指向數組的指針,跟a(一個指向a[0]的指針)在指針的類型上是有區別的。——《C和指針》。

本題解析:

1、&a表示的是整個數組的地址,+1后表示移動跟這個數組大小一樣的空間,int*進行了強制類型轉換為一個int類型元素的地址,因此p指向了數組a后面的一個int類型元素。

2、*(p-1)表示p向后移動一個int類型的字節數再解引用,因此為數組a的最后一個元素5;*p-1表示先解引用p指向的地址出的值在減一,此時該值是未定義的。

3、sizeof(數組名)得到的是整個數組的字節數,即5*4=20;sizeof(數組地址)為地址多占字節數,64位下為8。

4、本題答案為5,未定義,20,8。

總結

以上是生活随笔為你收集整理的sizeof 数组_简单的一维数组竟然有这么多坑?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。