C語言問題

2022-06-07 17:15:02 字數 2268 閱讀 8836

1樓:aivenyoung光影

1全部形參:全稱為"形式引數"是在定義函式名和函式體的時候使用的引數,目的是用來接收呼叫該函式時傳如的引數.

實參:全稱為"實際引數"是在呼叫時傳遞個該函式的引數.

形參和實參的型別必須要一致,或者要符合隱含轉換規則,當形參和實參不是指標型別時,在該函式執行時,形參和實參是不同的變數,他們在記憶體中位於不同的位置,形參將實參的內容複製乙份,在該函式執行結束的時候形參被釋放,而實參內容不會改變.

而如果函式的引數是指標型別變數,在呼叫該函式的過程中,傳個函式的是實參的位址,在函式體內部使用的也是實參的位址,即使用的就是實參本身.所以在函式體內部可以改變實參的值.

以上是官方論點。

再分析你的話,如果實參是位址值時,傳給形參的是位址值,你形參能夠改變該實參的「位址「麼,顯然是不行的。 注意位址是位址,位址對應的值是位址對應的值。

2樓:手機使用者

1答案應該是b,這個沒什麼好解釋的(就是指標變數指向變數的位址)

2 答案應該是d 如果直接用字串對字元陣列初始化的話字元陣列的長度要比實際字串長度大1的

因為字串在字元陣列中是以'\0'結束的,這個你也可以用sizeof() 分別測試一下

我已經測試過了a比b大1的

3 答案應該是d,這個沒的說,括號的作用就是避免二義

4答案應該是c,不要把 int *ptr();搞混了,題上的是返回乙個整形資料的指標函式,後者是乙個

返回指標的函式

5 答案是a,呵呵,這個你好好想一下就明白了

6 答案是a 4

7答案是23 這個你要好好看一看,特別是(&arr+1)它和(arr+1)區別很大,前者在位址上加了

1而後者在位址上加了1*sizeof(int);

8.這道題你是不是搞錯了,你仔細看看有很多錯誤的。

9.答案是 b 為了幫助你理解,對此程式我寫了段**

#include

void main()

void func(char str[100])

為什麼會出現這種情況呢,原因是因為兩者有著本質性的區別,第乙個sizeof(str)中的str是乙個

位址常量,它索引著一段大小為100的記憶體堆,而第二個sizeof(str)中的str是乙個字元指標變數

sizeof(str)的結果就是乙個字元指標變數所具有的記憶體,它的記憶體應該是為4的

10答案是d

二:1.

錯,應該放在靜態儲存區(或全域性資料區的)2對

3. 對

4.錯,不可能是float 型的5.對

三1. int main(void)

printf(「index value %d\n」,index);

return 0;}2.

char*f()

;char s[4]=;//關鍵字的開頭是不能大寫的,還有就是符號『也不對

return s;//ruturn 第乙個字母也不能大寫,

}void main()

//你這道題的本意是想通過函式呼叫來獲得乙個字串的首位址從而在主函式中輸出,

//但是,有一點這個程式沒有考慮到那就是當被調函式結束後那個char s[4] 所佔記憶體將自動

//作業系統**,因為它只是個動態區域性變數,所以要想達到目的應該是宣告成靜態變數的

//static char s[4],還有一點錯誤就是字串都要'\0'結尾否則輸出的字串的將不會是你想要的那樣

3.這道題沒什麼錯誤,能達到預期的效果,除了有幾處拼寫錯誤,例如你第乙個是getmmnory而第二個是

getmemory這一點你注意一下就可以了

void getmenory(char**p)

void test(void)

4.這道題沒什麼語法錯誤,除了單引號格式不對,還有就就違反了字串都要以'\0'結尾這一約定

5.這道題沒有什麼語法錯誤,就是有個字串函式寫錯了strcopy,應該寫成 strcpy的

四:你這道題具體是讓做什麼的,我不是太明白,是讓建乙個動態連結串列啊還是靜態連結串列啊,

請你把問題寫詳細點

五。int judgment(int a,int length )//這個函式是判斷是否對稱的

void main(void)

while(num>=10);

a[length]=num;

if( judgment(a,length))

printf("是\n");

}如果這個程式有什麼不懂得話,可以提出來,隨時幫你解析

希望我的答案對你有點幫助……

希望對你能有所幫助。

C語言問題,C語言問題

符合,相當於一個字元,ascii字元可以直接轉成short整型數字。101 不符合,這是一個字串,不能作為常數。不符合,因為 會對雙引號轉義,找不到另一個雙引號。會出錯。而且就算是 也不符合,因為編譯器會把它理解成一個字串,而非單個字元。e3不符合。019不符合,0開頭代表8進位制數,不能出現9。0...

C語言問題,c語言問題

這是值傳遞,值傳遞的過程的是,系統會給你的實參的值進行乙個拷貝,把這個拷貝傳遞給形式引數。因為是拷貝,所以實參裡頭的值是不會改變的。如果是位址傳遞就不一樣了。補充 你可以定義乙個指標,這個指標指向主函式的結構體。然後子函式的形參也定義乙個指向結構提的指標。這樣就是位址傳遞了。樓主還是好好花點時間看看...

c語言問題,求助,C語言問題,求助!!!

這種問題用哈夫曼樹的逆向思想就可以解決了,所以我建議還是自己按這思想好好研究一下。自食其力。c語言問題 因為 define s a p a a 定義後 是直接替換 運算過程是這樣的 3 3 5 3 5 所以是29 弱勢這樣定義的 p a a 結果就是192 3 3 5 3 5 9 15 5 29 巨...