C语言一个小小的问题引起的对指针的探究。。。
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                C语言一个小小的问题引起的对指针的探究。。。
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.                        
                                
                            
                            
                            C語言一個小小的問題引起的對指針的探究。。。   
                        
                        
                        廢話不多說。下面是這個大家認識的一個及其簡單的程序:
1 #include <stdio.h> 2 void A(int a[]) 3 { 4 printf("%d/t", sizeof(a)); 5 } 6 int main() 7 { 8 int a[512]; 9 int *p; 10 printf("%d/t", sizeof(a)); 11 A(a); 12 printf("%d/n", sizeof(p)); 13 return 0; 14 }?這個程序大家先看一遍再拿到編譯器里運行調試,發現什么了沒?輸出的是512?????? 4(2) ?? 4(2)。 我今天下午查了些資料,才知道了,原來是自己基礎沒掌握好,現在我就來解釋下:
???????? 第一個輸出512,是因為它是一個數組,所以輸出了整個數組所站的總共的內存字長大小。但為什么后面輸出的是4呢???原來啊,編譯器在對數組進行地址參數傳遞的時候,復制了內存地址,結果就使得數組直接變成指針了。。就是這個原因~但為什么輸出的是4(2)呢???呵呵,這個就是指針的構成了,其實所有的指針都只是一個無符號的整形數。。我的編譯環境是32位的linux。處理器尋址能力為2^32-1,相當于就是站了4個字節空間的大小。但在DOS(TC)環境下編譯,由于dos是16位的,所以就只輸出的2咯~~
?
posted on 2012-06-02 08:59 依舊濤 閱讀(...) 評論(...) 編輯 收藏轉載于:https://www.cnblogs.com/t-bruce-yu/archive/2012/06/02/2531544.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的C语言一个小小的问题引起的对指针的探究。。。的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 2022世预赛亚洲区收官赛国足不敌阿曼,
- 下一篇: 《代悲哉行》第七句是什么
