# Hello World in C++, the long way

Matthew-S
6,985 views

## The simplest program

No, this is actually not hello world. The simplest program actually only returns an exit code (like described in the previous step).


int main()
{
return 42;
}



This code declares a function whose name is main, who returns an integer (in C++, called int), and will always return the number 42. Whenever your computer compiles code into an executable, it looks for a function with the name main and will make sure to call that to start the program. That return value is the exit code. Let's try running this program. Linux:

$./program$ echo \$?
42


There we go! In only four lines of C++ we've already answered the ultimate question of life, the universe and everything. Now let's take it a step further.


int main()
{
}



This declares an integer (whole numbers) that holds the value 42 and then returns it.


int main()
{
int sum = 0;
sum += 1;
sum += 2;
sum += 3;
return sum;



Returns 6. sum += 1 is the same as sum = sum + 1.


int main()
{
int sum = 0;

int i = 1;
while (i <= 3)
{
sum += i;
++i;
}

return sum;
}



Same exact thing. For the most part, ++i is the same as i++ which is also the same as i += 1. In this, the variable i increases by 1, starting at 1 and ending at 3. The while will keep running the code between { and } as long as i <= 3 is true. The moment i is 4, it skips pas the brackets and continues to return sum;.


int main()
{
int sum = 0;

for (int i = 1; i <= 3; ++i)
{
sum += i;
}

return sum;
}



Yet again, this does the same thing. for is almost like an enhanced while loop that runs int i = 1 in the beginning, once, will loop between { and } as long as i <= 3 is true, and will run ++i at the end of every loop.


int main()
{
int myVar = 7;
int anotherVar = 3;
return myVar + anotherVar;
}



The exit code for this will always be 10.


int main()
{
int arr[2];
arr[0] = 7;
arr[1] = 3;
return arr[0] + arr[1];
}



Exactly the same as above but declaring an array of size 2 instead of two separate variables. An array is a group of variables. Each variable is at a particular position or index. The index number always starts at 0 in C++ (and most prgramming languages). in the above example, since the array only has 2 values in it, and the first value is at index 0, the second or last index lies at 1. Therefore, arrays start at 0 and end at size - 1 where size is how large the array is.


int main()
{
int arr[2] = {7, 3};
return arr[0] + arr[1];
}



Same thing.


int main()
{
int arr[] = {7, 3};
int sum = 0;

sum += arr[0];
sum += arr[1];

return sum;
}



Same thing. The 2 that used to be inside the [] will be inferred since there are 2 values between the { and }.


int main()
{
const int arrSize = 2;
int arr[arrSize] = {7, 3};
int sum = 0;

for (int i = 0; i < arrSize; ++i)
{
sum += arr[i];
}

return sum;
}



This uses a for loop as explained above to to the same thing. const means arrSize must always stay as 2. This is necessary because the compiler has to exactly how large the array, arr is. By declaring it as const, the compiler can pretty much replace all occurances of arrSize with 2 so it becomes int arr[2] = .... Now if we want to add up more numbers:


int main()
{
const int arrSize = 5;
int arr[arrSize] = {7, 3, 2, 8, 12};
int sum = 0;

for (int i = 0; i < arrSize; ++i)
{
sum += arr[i];
}

return sum;
}



Notice, all we had to do was change arrSize to 5 and add 3 more numbers. Finally, to write the same thing more concisely, we could do:


int main()
{
int arr[] = {7, 3, 2, 8, 12};
int sum = 0;

for (int val : arr)
sum += val;

retur sum;
}



for (int val : arr) will loop the code below once for every value inside the array, arr. The first time it runs, val holds 7. The next time, 3, and so on. When there is only one line of code, the { and } can be omitted. However, be careful because the compiler does not care about indentation; even if two lines below for are indented, if there are no brackets around it, the compiler will only run the first one in the for loop.

Open Source Your Knowledge: become a Contributor and help others learn.