C语言:下面图片上的选择题咋填(不定项选择)?
1个回答
展开全部
B、C两项是错误的,选B和C。
B、*(X+i)[j]——由于[]的优先级高于*,所以*(X+i)[j]被解释为*((X+i)[j]),又因X的类型是(*)[T](T是数组列数),所以X+i就是第i行(0行起算)的地址,(X+i)[j]就是第i+j行的地址,那么*((X+i)[j])就是第i+j行的下标为0的元素的值。可是这个数组的第i+j行在i和j可取的范围内会有很多机会比定义的行要大得多,所以越界了。
C、*(X+i+j)——这显然是第i+j行的行地址而不是元素值。
B、*(X+i)[j]——由于[]的优先级高于*,所以*(X+i)[j]被解释为*((X+i)[j]),又因X的类型是(*)[T](T是数组列数),所以X+i就是第i行(0行起算)的地址,(X+i)[j]就是第i+j行的地址,那么*((X+i)[j])就是第i+j行的下标为0的元素的值。可是这个数组的第i+j行在i和j可取的范围内会有很多机会比定义的行要大得多,所以越界了。
C、*(X+i+j)——这显然是第i+j行的行地址而不是元素值。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询