int a[][3] = {1,2,3,4}; int (*p)[3] = a; printf("%d ",*p[0]); p++; printf("%d",*p[0]); O/P = 1 4. HOW POINTER ASSIGNED ABOVE 3? | Sololearn: Learn to code for FREE!
Novo curso! Todo programador deveria aprender IA generativa!
Experimente uma aula grƔtis
0

int a[][3] = {1,2,3,4}; int (*p)[3] = a; printf("%d ",*p[0]); p++; printf("%d",*p[0]); O/P = 1 4. HOW POINTER ASSIGNED ABOVE 3?

Could anyone explain how pointer assigned after 3?

3rd Jan 2021, 10:38 AM
Gogul
Gogul - avatar
1 Resposta
+ 3
a is a 2D array where each 1D array contains 3 elements. Assigning {1, 2, 3, 4} is equivalent to {{1, 2, 3}, {4}}. p is a pointer to array that contains 3 elements and it's pointing to a. Doing p++ will result transfer it to the next array. Which is {4}. p[0] is 4.
3rd Jan 2021, 10:57 AM
ä½ ēŸ„é“č¦å‰‡ļ¼Œęˆ‘也ę˜Æ
ä½ ēŸ„é“č¦å‰‡ļ¼Œęˆ‘也ę˜Æ - avatar