Interview Q&A

/ 2 min read

Why does the indexing of Array start with Zero in C?

Martin Richards, creator of the BCPL language (a precursor of C), designed arrays initiating at 0 as the natural position to start accessing the array contents in the language, since the value of a pointer p used as an address accesses the position p+0

/ 1 min read

What does the C ??!??! operator do?

??! is a trigraph that translates to |. So it says: if(a || b){ ... }else{ ... } So, what is digraphs and trigraphs? In computer programming, digraphs and trigraphs are sequences of two and three characters, respectively, that appear in source code and, according to a programming language specification,

/ 1 min read

Why in C language is it the case that a[5] == 5[a]?

The C standard defines the Array Subscript Operator [] as follows: a[b] == *(a + b) Therefore a[5] will evaluate to: *(a + 5) and 5[a] will evaluate to: *(5 + a) and from elementary math we know those are equal. This is the direct artifact of

/ 2 min read

Why is one loop so much slower than two loops?

Suppose a1, b1, c1, and d1 point to heap memory and code has the following loop. const int n=100000; for(int j=0;j<n;j++){ a1[j] += b1[j]; c1[j] += d1[j]; } This loop is executed 10,000 times via another

/ 1 min read

What is the name of the "-->" operator?

Here's an example: #include <stdio.h> int main() { int x = 10; while( x --> 0 ) // x goes to 0 { printf("%d ", x); } } Answer --> is not an operator. It is in fact two separate operators, -- and >. The

Load More