Cプログラミング
 Computer >> コンピューター >  >> プログラミング >> Cプログラミング

Cの関数パラメータの評価順序は何ですか?


いくつかの関数に異なる引数を渡します。ここで、関数パラメーターの評価の順序について1つの質問が頭に浮かぶかもしれません。左から右ですか、それとも右から左ですか?

評価順序を確認するには、簡単なプログラムを使用します。ここでいくつかのパラメータが渡されています。出力から、それらがどのように評価されるかを見つけることができます。

サンプルコード

#include<stdio.h>
void test_function(int x, int y, int z) {
   printf("The value of x: %d\n", x);
   printf("The value of y: %d\n", y);
   printf("The value of z: %d\n", z);
}
main() {
   int a = 10;
   test_function(a++, a++, a++);
}

出力

The value of x: 12
The value of y: 11
The value of z: 10

この出力から、評価シーケンスを簡単に理解できます。最初にzが取得されるので、10を保持し、次にyが取得されるので、11になり、最後にxが取得されます。したがって、値は12です。


  1. JavaScript関数パラメーター

    関数の呼び出し中にさまざまなパラメーターを渡します。これらの渡されたパラメーターは関数内でキャプチャでき、これらのパラメーターに対して任意の操作を実行できます。関数は、コンマで区切られた複数のパラメーターを取ることができます。 以下は、JavaScriptで関数パラメータを実装するためのコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" co

  2. C言語のstrcmp()関数とは何ですか?

    Cライブラリ関数intstrcmp(const char * str1、const char * str2) str1が指す文字列を比較します str2が指す文字列へ 。 文字の配列は文字列と呼ばれます。 宣言 以下は配列の宣言です- char stringname [size]; 例-charstring[50];長さ50文字の文字列 初期化 単一文字定数の使用- char string[10] = { ‘H’, ‘e’, ‘l’, ‘l’, ‘o’ ,&ls