程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> c語言-C語言若有以下定義和語句

c語言-C語言若有以下定義和語句

編輯:編程綜合問答
C語言若有以下定義和語句

int *p,k=10; double *q,f=5.6; p=&k;q=&f; 執行語句p=(int *)q;後,*p的值是()A)一個整數 B)5 C)6 D)10====參考答案是A,求詳細解釋

最佳回答:


q一開始是指向double類型的變量,然後強轉為指向int類型的指針並賦值給p,雖然強轉了,但是q依然指向存儲double類型5.6的8個字節的內存區域的起始地址,然後p也指向這段內存,然後對p進行取值,因為p是int類型,所以*p就取得了這段內存的前面四個字節的內容,double類型的機內表示你懂的,其實*p取得的是“垃圾值”。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved