當前位置:首頁 » 編程語言 » c語言局部變數初始化逗號作用
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言局部變數初始化逗號作用

發布時間: 2022-07-21 11:45:25

❶ 在c語言中逗號運算符有什麼用呢

等下。。答錯了。。還需要理解一下神馬是逗號表達式。。我前面說的和uuyyhhjj與delta_charlie的意思一樣,但其實我們都搞錯了。你可以自己把我們的例子都運行一下,看看是不是這樣。下面我感覺應該是我正確的理解。
逗號表達式是所有運算符中優先順序最低的,比賦值運算符還要低。他的作用就是把每個表達式都算一遍,並且把最後一個表達式返回的值作為逗號表達式的值。(把其他的都不管了)

像你說的那個,如果是
x=200,500;
(沒有括弧),x就會等於200,然後上面整個式子的值是500。

但是有括弧的話, (200,500) 就是一個單獨的式子,他的值是500,所以x=(200,500)最後賦值給x就是500

舉幾個例子,

x=(21,22,23,24,25);
這個裡面,先算括弧里的,前面的21到24算過後都被丟棄,括弧里的表達式的值是25。之後執行賦值運算,x的值就變成括弧里表達式的值,25了。
如果編譯
int x;
int a;
x=(21,22,23,24,25);
cout<<"x="<<x<<endl;
會輸出
x=25

x=21,22,23,24,25;
這行整個是一個表達式。
逗號運算符會分別計算表達式x=21、22、23 、24、25(單獨一個數字也可以叫做表達式)。
然後他會用最後一個表達式作為逗號表達式的值。所以整個式子(整個一行)的值是25。但是因為這個值並沒有返回給別的變數,他就也被丟棄了。
如果編譯
int x;
x=21,22,23,24,25;
cout<<x;
輸出是21。

a=(x=21,22,23,24,25);
這個裡面,除了給x賦值,它又把逗號表達式的值25賦給a。
如果編譯
int x;
int a;
a=(x=21,22,23,24,25);
cout<<"x="<<x<<endl;
cout<<"a="<<a<<endl;

會輸出
x=21
a=25

a=(x=21,22,23,24,x*25);這個里,賦值給x之後又利用x計算了逗號表達式的值,21*25,最後把這個值賦給a
如果編譯
int x;
int a;
a=(x=21,22,23,24,x*25);
cout<<"x="<<x<<endl;
cout<<"a="<<a<<endl;
會輸出
x=21
a=525

簡單來說,逗號的作用就是執行每一個表達式,然後用最後一個表達式作為他它的值。
看這個可能可以幫助你理解 http://blog.csdn.net/great_ghoul/article/details/1779768
如有疑問,歡迎您的追問。

❷ c語言,數組或者結構體初始化後面多加一個多餘的逗號會使得益處發生,求解,謝謝

對於數組來說如果像下面這要多加一個逗號結果不會變:

int a[]={1,2,3,};
int a[]={1,2,3};

上面這兩條語句是等效的,其中第一種是計算機發展早期非常古老的一種寫法,這么寫的目的是讓以後的程序維護人員少輸入一個逗號,現代的C語言中一般已經不這么用了。

對於結構體來說如果像下面這樣多加一個逗號結果也不會變,但是沒有什麼意義,一般不建議這么寫:

struct a {
int id;
int money;
} mya={10,100};

struct a {
int id;
int money;
} mya={10,100,};

❸ C語言里的逗號的使用方法

C語言提供一種特殊放入運算符----逗號運算符
表達式1,表達式2
逗號表達式的求解過程是:先求表達式1,再求表達式2.整個逗號表達式的值是表達式2的值,如表達式「3+5,6+8」的值為14。又如,逗號表達式:「a=3*5,a*4」,賦值運算符的優先順序別高於逗號運算符,因此應先求解a=3*5.經計算和賦值後得到a的值為15,然後求解a*4,得60.整個逗號表達式的值為60.
逗號表達式的一般形式可以擴展為
表達式1,表達式2,表達式3,。。。表達式n。它的值為表達式n的值
逗號運算符是所有運算符中級別最低的。

❹ c語言中局部變數初始化是什麼意思,怎麼初始化

「局部變數初始化」是指在使用這個局部變數前,要對其進行初始化。這是因為局部變數是從內存堆中分配的,用完就還給內存堆,所以被分配的局部變數並不一定是0,而很可能是其他地方用過的一個值,因此在使用這個變數之前,要對它進行顯示初始化。初始化可以用兩種方式(假設初值為0):

  1. 聲明變數是賦值:int val=0;

  2. 在使用前賦值:

    int val;

    .... //其它代碼

    val=0;

    ....//後面開始使用變數val

❺ 請問C語言里逗號運算符有什麼用

確實,如果前面那些運算是純粹的運算的話,是沒用的。
如int a = 2, 3, 4;
那麼2,3顯然是沒用的。
但如果前面的運算有些"side effect"的話,逗號運算符就顯示出一些簡化代碼的功效了。
比如:
int k = ++a, ++b;
這句話用(b+1)定義了k,同時把a和b都加了1。

❻ c語言中逗號的作用,詳細點

在C語言中,多個表達式可以用逗號分開,其中用逗號分開的表達式的值分別結算,但整個表達式的值是最後一個表達式的值。
假設b=2,c=7,d=5,
a1=(++b,c--,d+3);
a2=++b,c--,d+3;
對於第一行代碼,有三個表達式,用逗號分開,所以最終的值應該是最後一個表達式的值,也就是d+3,為8,所以a1=8。
對於第二行代碼,那麼也是有三個表達式,這時的三個表達式為a2=++b、c--、d+3,(這是因為賦值運算符比逗號運算符優先順序高)所以最終表達式的值雖然也為8,但a2=3。
逗號運算符的優先順序最小

❼ C語言中,聲明變數和初始化變數有什麼作用

c語言中,變數只有先聲明,才能使用,這樣避免編程時產生不必要的錯誤,一位不同類型變數的存儲格式和長度都不同,所以位元組長度不同,聲明變數可以讓計算機知道你更需要用什麼樣的格式存儲變數,從而高效穩定地運行程序。

C語言包含的各種控制語句僅有9種,關鍵字也只有32 個,程序的編寫要求不嚴格且以小寫字母為主,對許多不必要的部分進行了精簡。實際上,語句構成與硬體有關聯的較少,且C語言本身不提供與硬體相關的輸入輸出、文件管理等功能,如需此類功能,需要通過配合編譯系統所支持的各類庫進行編程,故c語言擁有非常簡潔的編譯系統。

(7)c語言局部變數初始化逗號作用擴展閱讀:

C語言是面向過程的編程語言,用戶只需要關注所被解決問題的本身,而不需要花費過多的精力去了解相關硬體,且針對不同的硬體環境,在用C語言實現相同功能時的代碼基本一致,不需或僅需進行少量改動便可完成移植,這就意味著,對於一台計算機編寫的C程序可以在另一台計算機上輕松地運行,從而極大的減少了程序移植的工作強度。

與其他高級語言相比,C語言可以生成高質量和高效率的目標代碼,故通常應用於對代碼質量和執行效率要求較高的嵌入式系統程序的編寫。

❽ c語言中逗號指的是什麼意思

C語言中的逗號有兩種意思:

1、表示"分隔號"的意思,就和語文中的逗號一個意思;

2、表示"逗號運算符"的意思,用它將2個表達式連接起來.例如:

3+5,6+8:就稱為逗號表達式,又稱為"順序求值運算符"。逗號表達式的一般形式為表達式1,表達式2。
逗號表達式的求解過程是:先求解表達式1,再求解表達式2。整個逗號表達式的值是表達式2的值。例如:上面的表達式"3+5,6+8"的值是14。

(8)c語言局部變數初始化逗號作用擴展閱讀:

運算符號:

比特右移(>>)運算符可以是算術(左端補最高有效位)或是邏輯(左端補 0)位移。例如,將 11100011 右移 3 比特,算術右移後成為 11111100,邏輯右移則為 00011100。

因算術比特右移較適於處理帶負號整數,所以幾乎所有的編譯器都是算術比特右移。

運算符的優先順序從高到低大致是:單目運算符、算術運算符、關系運算符、邏輯運算符、條件運算符、賦值運算符(=)和逗號運算符。

數據類型:

C的數據類型包括:整型、字元型、實型或浮點型(單精度和雙精度)、枚舉類型、數組類型、結構體類型、共用體類型、指針類型和空類型。

常量與變數:

常量其值不可改變,符號常量名通常用大寫。變數是以某標識符為名字,其值可以改變的量。

標識符是以字母或下劃線開頭的一串由字母、數字或下劃線構成的序列,請注意第一個字元必須為字母或下劃線,否則為不合法的變數名。變數在編譯時為其分配相應存儲單元。

數組:

如果一個變數名後面跟著一個有數字的中括弧,這個聲明就是數組聲明。字元串也是一種數組。它們以ASCII的NULL作為數組的結束。要特別注意的是,方括內的索引值是從0算起的。

網路-C語言

❾ c語言,逗號的用處和使用方法………………

c語言提供一種特殊放入運算符----逗號運算符
表達式1,表達式2
逗號表達式的求解過程是:先求表達式1,再求表達式2.整個逗號表達式的值是表達式2的值,如表達式「3+5,6+8」的值為14。又如,逗號表達式:「a=3*5,a*4」,賦值運算符的優先順序別高於逗號運算符,因此應先求解a=3*5.經計算和賦值後得到a的值為15,然後求解a*4,得60.整個逗號表達式的值為60.
逗號表達式的一般形式可以擴展為
表達式1,表達式2,表達式3,。。。表達式n。它的值為表達式n的值
逗號運算符是所有運算符中級別最低的。

❿ 在c語言中,局部變數初始化是什麼意思,要怎麼初始化

按作用域,C語言一般分為全局變數和局部變數。全局變數一旦聲明就被默認初始化為適當類型的0,而局部變數被聲明的時候其值是不可預料的,所以為了後續程序的正常使用,最好將其認為地初始化,否則有時會有災難性的後果!
第二個問題,例如:
int main()
{
char a;//沒有被初始化,可以在後面初始化,一般沒危險性
char *p = &a;// 已初始化,指針p被賦予變數a的地址
char *q;//沒有被初始化,相當危險!因為指針q是局部變數,此時的值是不確定,可能指向系統的重要數據,一旦在此變數被初始化前遇到類似下面的語句,就危險了:
q = &a;
}