Question
Consider the following code snippet. What is the output
of the program?┬а #include < stdio.h > int main ( ) { ┬а ┬а int arr[5] = {1, 2, 3, 4, 5}; ┬а ┬а int *ptr = arr; ┬а ┬а ptr + = 2; ┬а ┬а printf("%d", *ptr); ┬а ┬а return 0; }Solution
In the code, ptr initially points to the first element of the array arr. The line ptr += 2; moves the pointer two positions ahead, meaning ptr now points to the third element of the array, which is 3. Therefore, *ptr dereferences the pointer to print the value 3. Why Other Options are Wrong: a) 1 is the first element, but the pointer has moved past it. b) 2 is the second element, but ptr skips over it. d) 4 is the fourth element, but ptr stops at the third. e) 5 is the fifth element, beyond where ptr is pointing.
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рд╢реНрди рдореЗрдВ рдкрд░реНрдпрд╛рдпрд╡рд╛рдЪреА рд╕реНрд╡рд░реВрдк рдХреЗ ...
"рдзреИрд░реНрдп" рдХрд╛ рдкрд░реНрдпрд╛рдпрд╡рд╛рдЪреА рд╢рдмреНрдж рдХреНрдпрд╛ рд╣реИ?
"рдореБрдБрд╣ рдХреА рдЦрд╛рдирд╛" рдХрд╛ рдЕрд░реНрде рд╣реИ:
тАШрдЕрдХреЗрд▓рд╛ рдЪрдирд╛ рднрд╛реЬ рдирд╣реАрдВ рдлреЛрдбреНрддрд╛' рдХрд╛ рдЕрд░реНрде рд╣реИ
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреНрд░рд╢реНрди рдореЗрдВ , рдЪрд╛рд░ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ рд╕реЗ , рдЙрд╕ рд╡рд┐рдХрд▓реНрдк рдХрд╛ я┐╜...
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреНрд░рд╢реНрди рдореЗрдВ , рдЪрд╛рд░ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ рд╕реЗ , рдЙрд╕ рд╡рд┐рдХрд▓реНрдк рдХрд╛ я┐╜...
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреНрд░рд╢реНрдиреЛрдВ рдореЗрдВ рджрд┐рдП рдЧрдП рд╢рдмреНрдж рдХреЗ рдиреАрдЪреЗ рдЪрд╛рд░ рд╡рд╛рдХреНрдпя┐╜...
' рдореБрд▓рдХреНрдХрдбрд╝ ' рд╢рдмреНрдж рдореЗрдВ рдореВрд▓ рд╢рдмреНрдж рддрдерд╛ рдкреНрд░рддреНрдпрдп рд╣реИ-
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреНрд░рд╢реНрдиреЛрдВ рдореЗрдВ рджрд┐рдП рдЧрдП рд╢рдмреНрдж рдХреЗ рдиреАрдЪреЗ рдЪрд╛рд░ рд╡рд╛рдХреНрдпя┐╜...
тАШ рдирд┐рд░рдВрддрд░тАЩ рдХрд╛ рдкрд░реНрдпрд╛рдпрд╡рд╛рдЪреА рд╣реИтАФ┬а