- ベストアンサー
int main(int argc, char* argv[]) についての質問
Haizyの回答
- Haizy
- ベストアンサー率40% (404/988)
こんにちは。 >特に(2)の場合のmain関数の意味と,その使い方について 書籍にもあると思いますが、プログラムに渡す「コマンドライン引数」です。 argcには、渡された引数の数 argvには、渡された引数の文字列 画格納されています。 argc[0] には、最初の引数 argv[argc -1←(配列は0から始まる為)]には、最後の引数が入ります。 例) program.exe aaa.txt bbb.txt ccc.txt というのは argc[0] には、"aaa.txt" argv[argc -1] "ccc.txt" が、格納されます。 感じ掴めますか? がんばってくださいね。Cをやる上で、必要なところなんで。 でわでわ。
関連するQ&A
- main(int argc,char **argv[])の意味を教えて下さい
今晩は、Cの初心者です宜しくお願いします。 main関数の引数で、int main(int argc,char **argv[])とint main(int argc,char *argv[])と書かれている場合がありますが、 「**argv」と「*argv」の意味の違いはどのようなもので、どのように使い分けるのでしょうか。 また、必ずポインタ型でとるという決まりでしょうか。 宜しくお願いします。
- 締切済み
- C・C++・C#
- main の引数には const 付けた方が
C言語での質問です。 引数を取るような main 関数は int main( int argc, char *argv[]){~} とされていますが、argvの指す文字列を変更する、というのはいくら何でもまずいので、 int main( int argc, const char *argv[]){~} あるいは int main( int argc, const char const * const * argv){~} の方がいいのではないでしょうか? 何故、constを付けない形が出回っているのでしょうか?
- ベストアンサー
- C・C++・C#
- main関数について
最近C言語を勉強し始めた者です。 main関数について分からないことがあるので質問致します。main関数は自作関数ですよね。ということは自由に引数を決めていいのですか?つまり int main(int argc , char *argv[]) 以外の引数を決めることは出来るのでしょうか。
- ベストアンサー
- C・C++・C#
- main関数のとる引数(argc , *argv[])の意味について
今日は、Cの初心者です宜しくお願いします。 main関数(main(int argc , *argv[]))のとる引数、argcのCと*argv[]のVはどのような意味の略なのでしょうか、 なにか意味があるようなきがするのですが。 宜しくお願いします。
- ベストアンサー
- C・C++・C#
- 引数の渡し方と受け方(argv)
メインで引数をもらい、それをパラメタチェック関数に 渡す場合、どのような形で渡せばいいですか? ※メインでargvを変数に格納しないで、 そのままargvを関数に渡す方法が分かりません。 int prm_chk(char *argv[]) { /* 処理省略 */ } int main (int argc, char *argv[]) { /* 処理省略 */ /* 以下のパラメタ(argv)の渡し方 */ if(prm_chk(*argv[]) != 0){ exit(-1); } exit(0); }
- ベストアンサー
- C・C++・C#
- main( )
次の様なプログラムを作りました。 Dosプロンプトを開き、コンパイルで出来た、exeファイルのアドレスを渡しました。 例えば、2と3を引数として渡す時、 2 スペースを押す、 3 enter の順に行うと、エラーになります。 どの様に、引数を渡すのか操作方法を教えてください。 お願いします。 #include<stdlib.h> #include<stdio.h> int main(int argc, char *argv[]) { if(argc!=3){ printf("2つの数を指定してください。"); exit(1); } printf("%f",atoi(argv[1])+atoi(argv[2])); return 0; }
- ベストアンサー
- C・C++・C#
- main関数の事についてお聞きします。
Windowsのプログラムを書くとき、下のようにキッチリ戻り値や引数を書かなくてはならないのに int WINAPI WinMain( HINSTANCE hInstance, // 現在のインスタンスのハンドル HINSTANCE hPrevInstance, // 以前のインスタンスのハンドル LPSTR lpCmdLine, // コマンドライン int nCmdShow // 表示状態 ); C言語で書かれたプログラムは int main(int argc, char *argv[]) ではなく、 int main(void) や void main(void) または int main() や main() だけのモノなど、 いろいろです。 main関数は、関数なのに戻り値や引数を省略して書ける仕様なのは、なぜなのか? ちょっと疑問に思ったのでこちらにお尋ねしました。
- ベストアンサー
- C・C++・C#
- コマンドライン引数 *argv[]はなぜポインタ?
C言語初心者です。 コマンドライン引数、 int main(int argc, char *argv[]) というのを最近勉強しましたが、引数2番目がポインタになっている理由について、 どなたか教えて下さい。 そういう仕様なんだから、それに従いましょう、ということでしょうか? int main(int argc, char argv[]) では、ダメなのでしょうか? このポインタでの引数渡しについて、 なんらかの納得のいく考え方をご存知の方がいらしたら、教えて下さい。 宜しくお願い致します。
- ベストアンサー
- C・C++・C#
- main()とint main(void)の違い
最初main()と習ったのですが、最近学校でmain()ではなくint main(void)を使うように なりました。 どのように違うのでしょうか? main関数のところに引数が入っている意味がわかりません。 (void)ってなんですか? そもそも引数って何ですか? あと、プログラムの最後にreturn(0)って書いてあるんですが、これはどういう意味ですか? 回答よろしくお願いします。
- ベストアンサー
- C・C++・C#
補足
Haizyさん,さっそくのアドバイスありがとうございます. int main(int argc, char* argv[]) の引数は,Haizyさんの示した以下の例, 例) program.exe aaa.txt bbb.txt ccc.txt では, argc には,渡された引数の数,具体的には,aaa.txt,bbb.txt,ccc.txtの合計 数,3が代入されることになり, argv[0] には, aaa.txt argv[1] には, bbb.txt argv[2] には, ccc.txt が代入されるという理解で正しいでしょうか??