C言語のよくわからないところがようやくわかったようだ

2025年6月5日木曜日

C言語 ブログ

t f B! P L

このブログを運営してからどれくらい経ったかわからないが、ようやくよくわからんところがわかった気がする。

というのも、私はC言語が嫌いでずっとPythonばっかり触れてきたものだから、C言語に触れる機会がなかったのだ。
しかし、高専にきて最初のプログラミングの授業では最初はC言語をやらせられるわけだな。

int mainはおまじないじゃねえよ!!


実際趣味でプログラミングをやっていた時代はおまじないということで覚えていた。
ただ、改めて考えてみたら、main(この部分) ってvoidじゃないパターンあんのなかと思い始めた。
そもそも、ここは引数的なもんだと思うから、ここが空じゃないとしたら、だれが引数を指定するのか?gccなのか?

ということでネットで調べて以下のコードを書いてみた。

#include <stdio.h>

int main(int argc, char *argv[]){
    if (argc > 1){
        printf("%s\n", argv[1]);
    } else {
        printf("No input file.");
    }
    scanf("\n");
    return 0;
}

※デスクトップで実行した場合のために最後にscanfを追加している。

ひとまず、第一引数が引数の数で、第二引数が渡された引数達らしい。
とりあえず、だれから引数が渡されるのかというと、ユーザーらしい。当たり前か。コマンドライン引数がここにくるらしい。
ただ、見てほしい。argv[1] !?!? argv[0] には何があるんだよ!!!

ということで以下のようにコードを編集した。

#include <stdio.h>

int main(int argc, char *argv[]){
    if (argc > 1){
        printf("%s\n", argv[0]);
        printf("%s\n", argv[1]);
    } else {
        printf("No input file.");
    }
    scanf("\n");
    return 0;
}

そう、こうやってargv[0]に何があるか強制的に見てやるって作戦だ。
ということでさっそく実行してみたわけだ。


うん。めっちゃ簡単な話だった。実行ファイル自身だった。
たしかにそうだ。

テスト期間だが、すっきりしたため、これで集中して代数幾何の勉強に打ち込める。

このブログを検索

要望について

ブログのレイアウトやテーマについての提案をいただきました。現在qooqテーマを適応中です。 語尾を自動でつけるプログラムを作りたいという要望をいただきました。是非紹介したいですがどの言語でどのようなプログラムかなど、お問い合わせフォームで詳しく教えてください!

最近の出来事

最近の出来事
寿司打お勧め75位♪(練習モードだけど)

アンケート

Welcome!

「プログラミング独学ブログ」へようこそ。 Yakinyといいます。幅広い範囲で投稿していますので、ぜひ過去の記事も見てみてください!!コメントも大歓迎です!更新がとまってしまって申し訳ございません

お問い合わせ

名前

メール *

メッセージ *

QooQ