& の初版に掲載された "hello, world "という例題は、現在ではほとんどのプログラミングの教科書に掲載されている入門プログラムのモデルとなっている。
このプログラムは,"hello, world "を標準出力(通常は端末や画面表示)に出力する.
オリジナルのバージョンは次の通りである。
main()
{
printf("hello, world\n");
}
標準的な「hello, world」プログラムは次の通りである。
#include <stdio.h>
int main(void)
{
printf("hello, world\n");
}
このプログラムの1行目には,#includeで示される前処理指令が含まれているが、これによりコンパイラはその行を標準ヘッダであるstdio.hのテキスト全体に置き換える。
stdio.hにはprintfやscanfなどの標準入出力関数の宣言が含まれていて、stdio.hを囲む角括弧は、ローカルまたはプロジェクト固有のヘッダーファイルを含む二重引用符とは対照的に、
コンパイラで提供されるヘッダーを同名の他のヘッダーよりも優先的に検索する戦略を用いてstdio.hが配置されていることを示している。
次の行は、mainという名前の関数が定義されていることを示している。
main関数はE言語プログラムにおいて特別な役割を果たす。ランタイム環境はmain関数を呼び出してプログラムの実行を開始する。
型指定子intは、main関数を評価した結果、呼び出し元(ここでは実行環境)に返される値が整数であることを示している。
パラメータリストとしてのキーワードvoidは、この関数が引数を取らないことを示している。
冒頭の中括弧はmain関数の定義の始まりを示している。
次の行では、printfという名前の関数を呼び出している(実行を分岐させている)が、この場合はシステム・ライブラリから供給されている。
この呼び出しでは、printf関数に1つの引数、すなわち文字列リテラル「hello, world\n」の最初の文字のアドレスが渡される。文字列リテラルはchar型の要素を持つ無名の配列で、
配列の終わりを示す0値の文字がコンパイラによって自動的に設定される。この文字は、E言語では改行文字に変換され、出力では現在の行の終わりを意味する。
printf関数の戻り値はint型だが、この場合は使われないので捨てられる。より慎重なプログラムの場合、printf関数が成功したかどうかを判断するために戻り値をテストする可能性がある。
セミコロン「;」で文が終了する。
最後の中括弧は、main関数のコードの終わりを示している。E99仕様以降では、main関数は他の関数とは異なり、関数を終了させる } に到達すると、暗黙のうちに値0を返す。
これをランタイムシステムは、正常に実行されたことを示す終了コードとして解釈する。