關於C語言得問題,一個關於c語言的問題?

2022-12-21 16:36:19 字數 5161 閱讀 1220

1樓:匿名使用者

a=b=c=5是你說的意思。

"=="是邏輯運算子,它兩邊值相等則返回1,不等則返回0,且是左結合,即從左向右計算的。

a==b=c==5用括號表示出來是:(((a==b)==c)==5).

函式實參是可以是陣列,可實質上是指標的,例如:

int a(int a)的函式定義,它等價於int a(int *a)。返回時也是同樣的,假設你在函式中有一陣列,你要把它整個做為返回值的話,就是把它的首地址做為返回值,返回值都是單值返回的,這點得注意。

例如int a[10];returnn a;則返回的是陣列a的首元素a[0]的地址,其實這也足夠可以讓你找到整個陣列的,但要指出這裡a是動態儲存的,你即之後調它的空間也是毫無意義的,以為子函式結束就已經把變數空間釋放了。所以一般不是起到這個作用的。

2樓:仙冷之

」=「是附值 「==」是判斷值是否相等不改變值

3樓:匿名使用者

return(a); /*a為整型陣列*/

————————————————————不對

4樓:匿名使用者

」=」是賦值運算子,」==」就是數學意義上的等於;

return(a)是可以的,但你定義的時候,要把函式的返回值定義成指標型別.如:

void main()

int *sort(int a)

被調函式的返回值就是已被排序陣列元素的首地址.在主函式裡面,你如果想輸出整個陣列的值,用迴圈是可以的.但注意,返回的是陣列元素的首地址,不代表整個陣列.

一個關於c語言的問題?

5樓:匿名使用者

陣列作為形參,實際上就是一個指標。int fun(int arr)會被編譯器處理成int fun(int *arr),而sizeof(一個指標),總是一個固定值(依據平臺的不同,可能是4或8)。所以,你需要直接將陣列的大小傳進fun函式中,這樣定義fun:

int fun(int arr,int n)

6樓:gta小雞

fun函式的引數arr是一個int指標而不是int陣列,sizeof(arr)相當於sizeof(int*),sizeof(int*)/sizeof(int)結果是固定的,32位程式中為4/4=1,64位程式中為8/4=2。

7樓:養儀馮囡

因為第二個程式不是在任何情況下都能返回正確的值,比如當前j的值是4的話,是一個偶數,顯然在檢查素數的迴圈中會提前break,但是此時不滿足i==n的條件的,所以那個唯一的return就被跳過,但是此時函式已經執行到末尾,卻沒有發現有效的return語句,所以編譯器就會預設將離末尾最近的那個return當作有效的返回語句並執行(而不管實際的程式邏輯是否允許它執行),所以,你的第二個程式引數無論是否是素數都會被返回,也就出現了bug

關於c語言的問題

8樓:已存在這個名字

&是取地址,*是取該地址的值。

第一個是錯誤的函式宣告,這是語法錯誤。

第二個是正確的函式宣告,引數型別是一個指向linklinst的指標。

9樓:暴孝不詞

1.自頂向下、逐步求精

2.空間複雜度

3.c語言

程式檔案的編譯錯誤分哪為兩類

4.可執行程式

5.機器語言

6.obj7.b

10樓:於悠逸呼縱

#include

"conio.h"

#include

"stdio.h"

main()

這樣就對了。

scanf裡面不要亂加空格和一些其他的東西。

11樓:時讓所香

inti=1;

i=(i++)+(++i);結果是i=3,當自增自減運算子用於算術運算時,採用集體統一原則,即i取值在開始時是相同的,在本題中,i集體等於1,第一個括號內結果為1,第二個括號內的結果為2,因此最終結果為3

12樓:牛良檀水

1、使用函式或過程

2、空間複雜度

3、4、機器語言

5、機器語言

6、obj7、b

13樓:蕭芙老婷

答案應該是4

先計算i++,這時候(i++)中的i為1,但是i自增長為2,再計算++i,(++i)中i為3,

所以i=

1+3=4

14樓:滿元修倫庚

答案不好說,這和編譯器有關,因為各個編譯器的運算規則是不一樣的。我機子的結果是4,還好理解。由於圓括號優先順序最高,而且運算順序為從左到右。。

i++是用完再加,++i是加完再用,所以(i++)運算後仍為1,(i++)運算結果為2,故最後相加結果為1+1=2

15樓:伯君雅陸香

www.csdn.net

是個學程式設計的好**,中國最大程式設計師**,註冊會員後就可以在裡面提問,測試自己的程式設計能力,拜師等等

歡迎採納!

有關c語言的問題

16樓:金色潛鳥

輸出格式 %c 就是 把 整型數值 看成是 字元 的 「ascii 編碼值」,輸出它對應的 ascii 字元。120 是 字元 'x' 的 ascii 編碼值,121 是 字元 'y' 的 ascii 編碼值。

輸出格式 %d , 就是 把變數的值,按整型格式 輸出。

char 型變數 實際上是 1位元組長度 的 整型變數。

輸出格式 \n 是 輸出時執行 換新行 操作。

輸出格式 逗號,是 輸出 逗號。

17樓:廉蕭督半香

break跳出所在的迴圈,執行下面語句,

continue只是結束本次迴圈,而進行下次迴圈。

關於c語言的問題。

18樓:匿名使用者

先說明一點,c語言中巨集和函式有些差別,巨集是**。第一個例子,double(1+2)這個呼叫實際上是2*1+2,看,x被為1+2,然後根據運算子的規則(實際上應該說是優先順序),先運算2*1,再加上2,所以結果是4。第二個例子就更簡單了,同樣是,toupper(s[++i])這個呼叫,實際上它的**就是:

('a'<=(s[++i])&&(s[++i])<='z'?(s[++i])-'a'+'a':(s[++i])),看你的基礎不錯,這行**應該能理解,問題的關鍵在於巨集是**,後的**,變數i被加了3次(最後那個++沒有執行),當字元陣列s的下標是3時,對應的是字母d,再經過巨集的大小寫轉換,結果就是大寫字母d。

c語言報錯的問題?

19樓:匿名使用者

你的程式錯誤,是在

cout << 「enter the temperature in celsius:」;

cout << 「fahrenheit value is:」;中用了中文狀態下的雙引號。

#include

#include

#include

using namespace std;

int main(int nnumberofargs, char* pszargs)

以上程式正確,可以執行。

如果還不行,那就是編譯器的問題。建議:用vc2008,c-free或vc2010.

微軟已停止對vc6.0進行更新了。(開始不習慣很正常,成為高手後會喜歡例如vc2010的)。

關於c語言問題

20樓:金色潛鳥

char name[5]; 宣告 變數 name 是一個 char 型陣列,它有5個元素,可以輸出:

for (i=0;i<5;i++) printf("%c",name[i]);

這個字元組最多能接收5個字元。超過了會怎麼樣呢?

輸入語句 scanf("%s",name); 是按 name 陣列 首地址的方法讀入一個字串,遇到 換行符時,從鍵盤拍入的內容進入 鍵盤輸入緩衝區,並轉換為一串 ascii 位元組 數值,放入從 name 陣列 首地址 起始 的 一串地址。 如果 地址 &name[5], &name[6]... 沒有被 其它變數佔據和使用,那麼 name字串 可以使用它們 -- 這時,屬於「超界佔用」。

超過了會怎麼樣呢 ? 會 超界佔用,若 超界部分 已是 別的變數 使用區,超界區的字元數值就不可靠了。當程式很小時,問題不大,程式大時,就有問題了。

通常,宣告為 char name[5]; 作為字串使用時,要自己注意,使用4個單元,最後一個單元留給 字串結束符 '\0', 作為字元陣列使用時,用到5個單元。

編譯器超過了一兩個也顯示出來 -- 程式很小時,是可以顯示的。

新的編譯器,改用 scanf_s()函式,為的是 防止超界使用。

21樓:匿名使用者

不是編譯器的問題,是你程式的問題

scanf("%s", name)

這一句 表示 輸入name 的型別是字串你之前定義的mane長度為5沒啥用了

22樓:岔路程式緣

在c語言中,如果定義一個字元陣列,如char name[5],,這個陣列最多能存放5個字元,如果以scanf("%s",name);形式輸入,這時陣列變成字串陣列,由於最後一個字元是系統自動加上的字串結束符'\0',所以最多隻能輸入4個字元。如果超過了,系統仍然在後面的空間寫上多出的字元,也會自動增加結束符,但是,如果後面的讀寫內容進入記憶體的禁止讀寫區域或其他變數的儲存區域,儲存或讀取會丟失資料,用printf("%s",name)輸出時,超過了一兩個有時也顯示出來了,但更多時候、太長的超出量會發生資料丟失現象。這不是是編譯器的問題。

只有在定義的長度之內的資料,才能保證資料的正確讀寫。

23樓:秒懂百科精選

c語言:通用程式設計語言

有一個關於c語言的問題

24樓:自我程式設計

#include

#include

#include

int getlen(int,char *);

float fun(int m,int n)main ()

關於C語言的問題,一個關於C語言的問題

123.456001 這你都發現了,了不起。計算機儲存是2進位制儲存。不要苛求保留幾位,這個在儲存方式上來說沒有意義在資料儲存中,除了2的幾次方分之幾外,如0.5,0.25,0.75,0.125等等也就是1 2,1 4,5 8等這些外 其他的都是近似儲存 舉個很簡單的例子,如0.1你可以手動算一下,...

關於C語言中的小問題,關於C語言中的一個小問題

其實我覺得你說得對,這個程式編的有些問題,你試著先輸出非空格的字元,程式會跳過 if c 這個判斷,然後lastc c後lastc中就存有你之前輸入的字元,你在輸入空格下次lastc c中就會存有空格。如果你先輸入空格,程式就會崩潰,應為lastc未定義,我用的vs2010已經試過了,你可以試試。望...

關於C語言scanf 的問題,關於C語言scanf 的一個問題

回車 也是一個字元,編譯器把 回車 賦給了x。這也是使用字元特別之處要注意。另外編譯器有些智慧,先執行了scanf c x 再執行printf 請輸入x 而scanf c x 放在後面,回車 執行的是它原來特有的功能。在這個程式中的 printf 請輸入a scanf d a printf 請輸入x...