Here’s the classic “Hello, World!” code for both C and C++, along with explanations and how to compile/run them.
C Hello World
Code
#include <stdio.h> // Required for input/output functions like printf
int main() {
// printf is a function used to print formatted output to the console
printf("Hello, World!\n");
// main returns an integer. 0 typically indicates successful execution.
return 0;
}
Explanation
#include <stdio.h>: This line is a preprocessor directive. It tells the C compiler to include the contents of thestdio.h(Standard Input/Output) header file. This file contains declarations for standard I/O functions, includingprintf().int main() { ... }: This is the main function, which is the entry point of every C program.int: Specifies that themainfunction will return an integer value.main(): The name of the function.{ ... }: The curly braces define the body of the function, containing the statements to be executed.
printf("Hello, World!\n");:printf(): This is a standard library function used to print output to the console."Hello, World!\n": This is a string literal passed as an argument toprintf(). It’s the text that will be displayed.\n: This is an escape sequence that represents a “newline” character. It moves the cursor to the beginning of the next line after printing “Hello, World!”.;: Every statement in C must end with a semicolon.
return 0;: This statement indicates that themainfunction has finished executing successfully. A return value of0is conventionally used to signify successful program termination.
How to Compile and Run (using GCC)
- Save: Save the code in a file named
hello.c(or any name ending with.c). - Compile: Open a terminal or command prompt and navigate to the directory where you saved the file. Then, run the following command:
gcc hello.c -o hello
gcc: The C compiler (GNU Compiler Collection).hello.c: Your source code file.-o hello: Specifies the name of the executable output file (you can choose any name, likemyprogram).
- Run:
./hello
You should see:
Hello, World!
C++ Hello World
Code
#include <iostream> // Required for input/output streams like std::cout
int main() {
// std::cout is an object used to print output to the console
// << is the insertion operator, used to send data to the output stream
std::cout << "Hello, World!" << std::endl;
// main returns an integer. 0 typically indicates successful execution.
return 0;
}
Explanation
#include <iostream>: This line includes theiostream(Input/Output Stream) header file, which provides the C++ standard library’s stream-based I/O functionalities, includingstd::coutandstd::endl.int main() { ... }: Similar to C, this is the main function, the program’s entry point.std::cout << "Hello, World!" << std::endl;:std::cout: This is the standard output stream object in C++. It’s used to send data to the console.std::indicates thatcoutbelongs to thestd(standard) namespace.<<: This is the stream insertion operator. It “inserts” the data on its right into the output stream on its left."Hello, World!": The string literal to be printed.std::endl: This is a manipulator that inserts a newline character and then flushes the output buffer. (You could also use'\n'like in C:std::cout << "Hello, World!\n";.'\n'is generally more efficient as it doesn’t force a buffer flush, but for simple “Hello, World!”, the difference is negligible).;: Every statement in C++ must end with a semicolon.
return 0;: Same as in C, indicates successful program termination.
How to Compile and Run (using G++)
- Save: Save the code in a file named
hello.cpp(or any name ending with.cpp,.cc, or.cxx). - Compile: Open a terminal or command prompt and navigate to the directory where you saved the file. Then, run the following command:
g++ hello.cpp -o hello
g++: The C++ compiler (part of GCC).hello.cpp: Your source code file.-o hello: Specifies the name of the executable output file.
- Run:
./hello
You should see:
Hello, World!
Both C and C++ can achieve the same basic output, but they use different standard libraries and approaches for input/output. C++’s iostream is generally considered more type-safe and extensible for complex I/O operations.