Output question
What is the output for this code? char str[]="%d %c", arr[]="Sololearn"; printf(str, 0[arr], 2[arr+3]); How is the output 83 e?
1/16/2021 6:48:20 AM
Àçhîñtyà Ràj
3 Answers
New AnswerSame answer as Pąľľąvī , but I've explained a bit about what 0[arr] and 2[arr + e] means. arr[0] literally means *(arr + 0) because in C, variables containing array values are actually pointers to the first element of that array. So in the same way, 0[arr] literally means *(0 + arr), which is the same as *(arr + 0), which in turn, is the same as arr[0]. So you are passing arr[0], which is 'S', to the %d format specifier, which prints the ordinal value of 'S' In the same way as explained above 2[arr + 3] is the same as *(arr + 3 +2) = *(arr + 5) = arr[5] So you are passing arr[5], which is 'e', to the %c format specifier. The %c specifier is used to print values of char type to the screen. So it simply prints 'e'.