求c語言大神解答下面這道題,線上等!急!!求C語言的大神幫我編下這道題的程式碼!!!

2021-05-04 18:25:50 字數 3108 閱讀 7925

1樓:匿名使用者

*運算子在進行指標運算的時候做的是取值操作,其實很好理解。

int * n;

就是定義了一個int型別的指標,它可以存放int型別的值的地址,那麼就可以用取地址符&將int型別變數的地址取出來賦值給它:

int i = 3;

n = &i;

這時n存放的是i的地址,用*n就可以通過n所存放的地址來找到這個地址所對應的記憶體然後訪問其中的值,通俗理解就是n中只能存放地址,把i的地址給n就必須i過來把地址取出來(&i)告訴n。而賦值之後n只有i的地址並沒有i的值,如果需要訪問i中的值就必須通過i給它的地址來找到i住的地方,那麼這個「找」的操作就是*n。那接下來這條語句:

*num = n;

這就很好理解了,*num就是找到了num所指存放的地址所在的那塊區域,然後將n放入這塊區域。*num = &n當然是不行的,其實物理上並不是不行,而是邏輯上不允許。*num確實是int型,而地址確實也是可以用int型表示,但仔細想想會很蠢!

int i = 3;

int n1 = i;

int * n2 = &i;

其實再對比一下更好加深理解,int n1 = i;可以理解為重新造了一個房子,然後將i克隆一個放在新的房子中,那麼在新的房子中對新的值怎麼操作對i其實是沒有任何影響的。但int * n2 = &i;就不同了,將i的地址給了n2那麼通過n2所存放的地址找到的就是i的家了,那麼通過*n2來操作n2所存放的地址所指向的值的時候,操作的就是i的值。

指標的傳地址特性在函式中最突出的作用就是可以通過函式來操作傳遞的引數的值。打個比方

void fun1(int a)

和void fun2(int *a)

這兩個函式,如果在主函式中定義int a = 1;然後呼叫fun1(a);最後在主函式中輸出a就會發現,a的值並沒有改變。而如果呼叫fun2(&a);的時候就不一樣了,它將a的地址傳送給了fun2,那麼這個函式就可以通過傳來的地址直接訪問這個地址所指向的區域記憶體放的值。這一點在今後的學習中會經常碰到也非常有用處,在學了結構體後會發現,有的結構體過大,賦值傳參太耗費記憶體空間的時候經常也會考慮通過地址傳遞引數。

指標還是很好理解的,但是學習以應用為主,往後面繼續去學函式、結構體甚至資料結構,慢慢的對指標就會有更深的理解了,指標只是一個很小的知識點。

2樓:

這是一個函式傳值的經典問題。

int swap(int a, int b);類似這種函式引數,是值傳遞,在函式中改變a,b的值,不會改變函式外面的變數內容。

int swap(int *a, int *b);類似這種函式引數,是地址傳遞,在函式中,改變傳入地址所指向的值,則會傳遞到函式外面。

但是,指標也是一種變數,像這樣的賦值num=&n,改變的不是地址指向的儲存內容,而是地址本身。它的改變是不會傳遞到函式外部去的。

**等!急!!求c語言的大神幫我編下這道題的**!!!

3樓:

#include

#include

int isprime( int num )int main(void)

if(isprime(num)) elsereturn 0;

}自己看看吧其中判斷素數的演算法是從網上找的效率比較高了。

其實也除了演算法之外 ;也是考了你for迴圈和選擇結構語句的配合使用了。。。。

求c語言大神解析這道題,並得出答案,**等,急!

4樓:聽不清啊

呼叫fun函式時,對前5個數進行降序的排序。最後的輸出結果是:

5 4 3 2 1 6 7 8 9 10

5樓:千鋒教育

把這個陣列的前5個數由大到小排列

最後會輸出 5 4 3 2 1 6 7 8 9 10

6樓:匿名使用者

把這個陣列從大到小排序,輸出 10 9 8 7 6 5 4 3 2 1

求c語言大神解題,這道題如何做,解析一下好嗎,好的,感激不盡!

7樓:新奕秀穎

ch是陣列,for語句迴圈讀取陣列,但是以2為等差;

i=0,ch=6,s=6

i=2,ch=a,

i=4,ch=2,s=6*10+2

輸出s=62

8樓:

數字轉成數,別除其他字等。輸出6521

求大神解答下這道c語言題,謝謝,詳細一點

9樓:聽不清啊

r=st(p);呼叫時,p初始指向k,即a初始指向k,c也指向k,if(*a>*c)c=a;條件不滿足。

返回k的地址,賦值給r。

輸出的是k的值,即7。

10樓:

你可以解釋一下樣例是什麼意思,我沒參加過acm,但是我的c與c++程式設計能力還可以,我現在去自習,如果可以,你解釋一下,我晚上回來一起研究,如果不願意就算了,這個樣例輸出我理解不了啊,謝謝

求大神解答一下這道c語言題目

11樓:匿名使用者

printf(「%c%c\n」,s1.c[0],*s1.s);

輸出:ad

連續列印兩個字元:

第一個是s1.c的第一個字元,也就是'abc'的第一個字元:a第二個是s1.s指向的字元,也就是'd'

printf(「%s%s\n」,s1.c,s1.s);

輸出: abcdef

連續列印兩個字串,這個沒什麼好說的

printf(「%s%s\n」,s2.cp,s2.ss1.s);

輸出:ghimno

連續列印兩個字串,這個也沒什麼好說的

printf(「%s%s\n」,++s2.cp,++s2.ss1.s);

輸出:hino

連續列印兩個字串,這個和上面一句的區別是字串的首地址不同。

本來s2.cp是指向'ghi'的,現在++s2.cp使得指標向後移動了一位,也就指向了'hi'。

++s2.ss1.s也是同樣的道理。

求大神解答c語言題目,求大神解答C語言題目

include 商不能超過最大的long型數,小數部分最後一位四捨五入太難了,希望能給你參考 void func double m,double n,double k int main func m,n,k include void func int m,int n,int k int main f...

C語言問題,求大神解答

大致看了一下,覺得總體思路可行,但具體操作就有問題了。一是feof這個函式的引用就有問題 這個函式不讀檔案只檢查剛剛發生的讀操作是否賣到或越過了檔案結束符 中第一次進入while時還沒有發生讀動作,無法確定的判斷會把錯誤依次轉嫁到檔案最後。二是用fgets這個函式讀檔案是由n或 n 控制結束的,中間...

c語言程式設計題目求大神解答,C語言程式設計題目,求大神解答

include void main max array 0 min array 0 max number 0 min number 0 for i 0 i 10 i 找到最大值和最小值的位置if array i include define len 10 void fun arr int a,int...