有以下程序#include <stdio.h>main{ int n,*p=NULL; *p=&n;printf("Input n:");s
有以下程序#include <stdio.h>main { int n,*p=NULL; *p=&n; printf("Input n:"); scanf("%d",&p); printf("output n:"); printf("%d\n",p);}該程序試圖通過指針p為變量n讀入數(shù)據(jù)并輸出,但程序有多處錯誤,以下語句正確的是A.int n,*p=NULL; B.*p=&n; C.scanf("%d",&p) D.printf("%d\n",p);
正確答案:A在C語言中存在直接存取和間接存取兩種訪問內(nèi)存數(shù)據(jù)的方法。前者利用變量名隱式地訪問內(nèi)存:首先定義變量,然后由編譯系統(tǒng)完成從變量名到內(nèi)存地址的映射工作,用戶通過變量名訪問內(nèi)存空間,變量地址對用戶完全透明。后者則通過指針顯式地訪問內(nèi)存:用戶直接使用變量的地址,或者將變量的地址值儲存于特殊的變量中,然后通過此特殊的變量獲取地址值訪問內(nèi)存。為了更好地使用指針變量,C語言提供了獲取變量地址和通過地址訪問變量的運算符“&”和“*”。(1)取地址運算符“&”的使用格式為:&變量名,如&a
詞條內(nèi)容僅供參考,如果您需要解決具體問題
(尤其在法律、醫(yī)學(xué)等領(lǐng)域),建議您咨詢相關(guān)領(lǐng)域?qū)I(yè)人士。