C語言問題

2023-01-18 20:20:33 字數 618 閱讀 8016

1樓:亨瑞

我覺得*p1不能稱為變數吧,但既然p1指向變數a,那麼*p1就對應一塊能用的儲存單元,*p1就能完全代表a參與運算。

指標就是地址;

指標變數就是存放著一個地址(其實地址不過是個無符號int)的變數,然而指標變數有基型別。

*p1表示的是p1所指向的東西,就是說p1存放的是地址,從那個地址開始的一個p1的基型別規定的值。如果p1存放著變數a的地址而且p1的基型別就是a的資料型別,那麼*p1與a就是一回事,直到p1不再指向a。

如果p1在定義的時候沒有初始化,那麼就不能使用*p1,因為不知道p1指向的記憶體單元是否已被使用,可不可以訪問。

2樓:

*p1等價於變數a,對*p1操作就等價於直接對變數a操作。

但要弄明白指標變數也是一個變數,儲存的是它所指向的變數的地址,型別和所指向的變數一致,指標在一定範圍內可以理解為地址,要與變數區分開來。

指標變數指向同資料型別的一個變數,

使用指標變數之前要對其賦初值。切記

3樓:匿名使用者

p1是指標 指向變數a的地址

把指標那部分再看看吧

最好有記憶體分佈解釋,這樣更清楚一點

c語言問題,C語言問題?

include include int main max min i 0 sum i 0 i 1 i 2 i 3 i 4 i 5 i 6 for j 0 j 6 j printf 去掉一個最高分 0.6lf max printf 去掉一個最低分 0.6lf n min printf 該選手最後的得分...

c語言問題,C語言問題?

char的範圍是 128 127的 你362就溢位了嘛 是這樣的 0362 0是表示8進位制 於是362在10進位制下是242 242溢位了 128 127 於是結果變成242 128 128 14 要明白這個,首先要明白記憶體中 c 變數是什麼樣子的。整數在記憶體中是以補碼的形式存取的。c 036...

C語言問題C語言問題,C語言小問題段錯誤是什麼

str2num char p num num k return num c語言問題c語言問題 include int main int h,m scanf d d h,m printf s num h if m 0 else printf o clock printf n return 0 c語言小...