1.定义了一个指向整型数组的指针 pt
,将它指向数组 a
,那么你可以使用如下语句来表示数组 a
第 i
行第 j
列的元素:
*(pt+i)+j
2.struct Student 需要占用 4 + 1 + 8 = 13 个字节的存储空间。stud 是一个 struct Student 类型的数组,其中包含 5 个元素。因此,stud 数组在内存中占用的存储空间应该是 13 x 5 = 65 个字节。
3.
- 使用下标访问,即:stud[3].a
- 使用指针访问,即:(pst + 3)->a
(1)*(*(pt+i)+i*2+j)
(2)80
(3)stud[3].a,(pst+3)->a
int t[6][8];
int p=0;
for(int i=0; i<6; i++)
{
for(int j=0; j<8; j++)
{
t[i][j]=p++;
printf("%3d",t[i][j]);
}
printf("\n");
}
int i=2,j=6;
printf("%d\n",t[i][j]);
int (*pt)[6];
pt=t;
printf("%d\n",*(*(t+i)+j));
printf("%d\n",*(*(pt+i)+i*2+j));
struct A
{
int n;
char mm;
double hkk;
} T[5],*pa;
pa=T;
T[3].n=7252;
printf("%d\n",(pa+3)->n);
printf("%d\n",sizeof(T));
详细解答如下,望采纳
在上述代码中,pt是一个指向整型数组的指针,它指向了a数组的第一行。如果要使用pt表示a数组第i行第j列的元素,可以使用以下两种方式:
(*(pt + i) + j)
int *p = *(pt + i);
p[j]
在上述代码中,stud是一个包含5个Student结构体的数组。由于Student结构体内有一个整型成员、一个字符型成员和一个双精度浮点型成员,因此stud数组中每个元素都会占用4 + 1 + 8 = 13个字节的存储空间。因此,stud数组在内存中所占的存储空间为5 x 13 = 65个字节。
在上述代码中,pst是一个指向Student结构体的指针,它指向了stud数组的第一个元素。如果要访问stud数组第4个元素的成员a,可以使用以下两种方式:
(pst + 3)->a
pst[3].a