int main()とint main(void)のC /C++の違い
C
Cプログラミング言語では、関数シグニチャにパラメータがない場合、入力として複数の引数を取ることができますが、C++では同じではありません。引数がC++でそのような関数に渡されると、コンパイルは失敗します。これが、int main()とint main(void)がCで同じである理由ですが、int main(void)の方が優れたアプローチであり、ユーザーが複数の引数をmain関数に渡すことを制限します。
例(C)
#include <stdio.h> int main() { static int counter = 3; if (--counter){ printf("%d ", counter); main(5); } }
出力
2 1
例(C ++)
#include <iostream> using namespace std; int main() { static int counter = 3; if (--counter){ cout << counter; main(5); } }
出力
main.cpp: In function 'int main()': main.cpp:10:13: error: too many arguments to function 'int main()' main(5); ^ main.cpp:5:5: note: declared here int main() ^~~~
-
C /C++でのconstint*、const int * const、およびint const *の違いは?
上記の記号は、次のことを意味します- int* - Pointer to int. This one is pretty obvious. int const * - Pointer to const int. int * const - Const pointer to int int const * const - Const pointer to const int また、-にも注意してください const int * And int const * are the same. const int * const And int const * const are the same.
-
C ++での定義と宣言の違いは何ですか?
C ++では、宣言と定義が混同されることがよくあります。宣言とは、(Cで)型、サイズ、および関数宣言の場合は任意の変数のパラメーターの型とサイズ、またはプログラム内のユーザー定義の型または関数についてコンパイラーに通知することを意味します。宣言の場合、どの変数のためにもメモリにスペースが予約されていません。 一方、定義は、宣言が行うすべてのことに加えて、スペースがメモリに追加で予約されることを意味します。 「定義=宣言+スペース予約」と言うことができます。 以下は宣言の例です- extern int a; // Declaring a