以下程序的运行结果是 。 #include<stdio.h> struct ps{ double i; char arr[24]; }; int main() { struct ps s[3], *p1, *p2; p1=s; p2=s+2; printf("%d,%d\n", p2-p1, sizeof(struct ps)); /* 输出数据之间没有空格分隔 */ return 0; }
时间: 2024-01-14 22:03:24 浏览: 98
代码运行结果
程序的运行结果是:
```
2,24
```
程序定义了一个结构体类型`ps`,其中包含一个`double`类型变量`i`和一个长度为24的字符数组`arr`。程序定义了一个结构体数组`s`,有3个元素。接着定义了指向结构体类型的指针变量`p1`和`p2`,并将`p1`指向`s`的首元素,将`p2`指向`s`的第3个元素。`printf()`函数输出了`p2-p1`的值和`sizeof(struct ps)`的值,其中`p2-p1`表示指针`p2`和指针`p1`之间的距离,即2个元素的距离,因此输出为2。`sizeof(struct ps)`表示结构体`ps`的大小,由于结构体中包含一个`double`类型和一个长度为24的字符数组,因此结构体的大小为24字节。因此输出为`2,24`。
阅读全文