有一整型数组 int A[5][3],&A=0xF4150C18, 求其下列元素地址: (1)A[2][1]; (2)A[3][2]; (3)A[4][1]
时间: 2023-09-30 12:04:12 浏览: 18
根据数组名 A 和下标的计算方法,我们可以推出 A[2][1]、A[3][2]、A[4][1] 的地址分别为:
(1)A[2][1] 的地址为 &A[2][1] = 0xF4150C18 + sizeof(int) * (3*2 + 1) = 0xF4150C18 + 4 * 7 = 0xF4150C30;
(2)A[3][2] 的地址为 &A[3][2] = 0xF4150C18 + sizeof(int) * (3*3 + 2) = 0xF4150C18 + 4 * 11 = 0xF4150C34;
(3)A[4][1] 的地址为 &A[4][1] = 0xF4150C18 + sizeof(int) * (3*4 + 1) = 0xF4150C18 + 4 * 13 = 0xF4150C34。
注意到第(2)和第(3)问的结果是一样的,这是因为它们的地址计算公式是一致的。
相关问题
c语言有一个数组int a[]={1,2,3,4,5},请用指针法一次输出每一个数组元素
可以使用指针遍历数组来输出每一个数组元素。代码如下:
```c
#include <stdio.h>
int main() {
int a[] = {1, 2, 3, 4, 5};
int *p = a; // 将指针 p 指向数组 a 的首地址
// 使用循环遍历数组并输出每一个元素
for (int i = 0; i < 5; i++) {
printf("%d ", *p);
p++; // 将指针 p 指向下一个数组元素的地址
}
return 0;
}
```
输出结果为:
```
1 2 3 4 5
```
使用冒泡法实现整型数组int a[5]={3,2,-4,9,8};中各元素从大到小依次排列。
可以使用以下代码实现:
int a[5] = {3, 2, -4, 9, 8};
int i, j, temp;
for (i = 0; i < 5 - 1; i++) {
for (j = 0; j < 5 - 1 - i; j++) {
if (a[j] < a[j+1]) {
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
经过冒泡排序,数组a中各元素从大到小依次排列为:{9, 8, 3, 2, -4}。