#include <stdio.h>
int a;
int main()
{
int a, b;
int *p;
b = 8;
p = &b;
a = 32 + b;
p = &a;
*p = 32 - b;
funct (a, &p);
*p = 2;
printf ("a=%d b=%d", a, b);
}
funct (int x, int **y)
{
a = 15;
**y = x - a;
*y = &a;
}
有人能告訴我爲什麼a等於9嗎?我試圖解決這個問題,但我不明白它真的很好指針和雙指針練習
我試着在code::blocks
代碼,顯然a
40後
`*p=32-b`
此亦24,p=&b
意味着該指針指向b的地址,然後a=32+8
p=&a
和雙指針*p= 32-b
因此*p=24
。 24
指針p
存儲的地址是?因爲現在根據練習a
的值應該是24,我不明白爲什麼。
有人可以告訴我一步一步如何處理這些運動?
謝謝你回答,但我不明白爲什麼* p = 32-8意味着a = 24。 我的意思是* p = 24是什麼意思? 24是地址嗎? –
'p'是在'main'中指向'a'的指針('p = &a');'* p = 24'意思是'給p指向的變量賦值24' –
@Giorgio:如果'p ==&a ',然後'* p == a',所以'* p = 24'與寫'a = 24'相同 –