C Programming - Pointers - Discussion
Discussion Forum : Pointers - Point Out Correct Statements (Q.No. 6)
6.
Which of the statements is correct about the program?
#include<stdio.h>
int main()
{
int arr[3][3] = {1, 2, 3, 4};
printf("%d\n", *(*(*(arr))));
return 0;
}
Discussion:
27 comments Page 2 of 3.
Chaw said:
1 decade ago
Why use *** arr?
Niki said:
1 decade ago
Can we take it like this?
*(*(*(arr))=*(*(*arr[0][0]))=*(*(1))
Some one please explain me.
*(*(*(arr))=*(*(*arr[0][0]))=*(*(1))
Some one please explain me.
Rushit said:
1 decade ago
@Lavaanya.
*(arr+1) is one unit here it shifts 3(cause 3 row).
So. it will point to next column.
You can access any element via this = *(*(arr+column)+row).
*(arr+1) is one unit here it shifts 3(cause 3 row).
So. it will point to next column.
You can access any element via this = *(*(arr+column)+row).
Lavanya said:
1 decade ago
#include<stdio.h>
int main()
{
int arr[3][3] = {1, 2, 3, 4};
printf("%d\n", *(*(arr+1)));
return 0;
}
Why is answer 4 here.
int main()
{
int arr[3][3] = {1, 2, 3, 4};
printf("%d\n", *(*(arr+1)));
return 0;
}
Why is answer 4 here.
TNS said:
1 decade ago
The given array is a 2-D array, so we can access all the elements using double pointer. Triple pointer is not needed.
Farzana Shaik said:
1 decade ago
We use triple pointer for 3-Dimensional array only.
But in above program 2-dimensional array is given.
But in above program 2-dimensional array is given.
@Singh said:
1 decade ago
9 element should be present their is only 4 other value can be assign as 0 or garbage value.
Manju said:
1 decade ago
Array declared as two dimensional but in the printf statement there is three dimensional pointer notation so complier thrown error.
Kunal said:
1 decade ago
As we have given two dimensional error so it can have only pointer to pointer means only two *.
Inderpal said:
1 decade ago
@ WIKIOK right answer.....
Post your comments here:
Quick links
Quantitative Aptitude
Verbal (English)
Reasoning
Programming
Interview
Placement Papers