struct date{ int year; int month; //结构成员 *类型声明无需赋值;//基本类型/构造类型/指针类型 int day; }; int main(){ struct date a = {2001,4,7}; //a是标识符(具体内存空间),a代表就是一个日期;a表示结构变量 a.year=2001; printf("%d %d %d\n",a.year,a.month,a.day); struct date*p = &a; p -> year = 1000; printf("%d",p->year); 给这段代码添加一个使用数组用struct调用 }
时间: 2024-01-23 17:03:35 浏览: 69
可以通过定义一个结构体数组来调用结构体:
```
#include <stdio.h>
struct date{
int year;
int month;
int day;
};
int main(){
struct date a[2] = {{2001, 4, 7}, {2021, 9, 20}};
// a[0] 表示第一个结构体,a[1] 表示第二个结构体
a[0].year = 2001;
printf("%d %d %d\n", a[0].year, a[0].month, a[0].day);
struct date *p = &a[1];
p->year = 2022;
printf("%d", p->year);
return 0;
}
```
以上代码使用了一个包含两个结构体的数组,分别对其进行了修改和访问。
相关问题
struct date{ int year; int month; //结构成员 *类型声明无需赋值;//基本类型/构造类型/指针类型 int day; }; int main(){ struct date a = {2001,4,7}; a.year=2001;a.month=4;a.day=7; 输出怎么写 }
您可以使用 printf 函数输出结构体变量 a 的成员值,具体如下:
```c
printf("日期为:%d年%d月%d日\n", a.year, a.month, a.day);
```
这样就可以输出结构体变量 a 的年、月、日信息了。
编写一个函数NewDate,为结构类型变量动态分配空间。此函数返回一 个指针,指向结构变量的起始位置。
好的,这是一个比较简单的编程问题。下面是一个可能的实现:
```c
#include <stdio.h>
#include <stdlib.h>
typedef struct {
int year;
int month;
int day;
} Date;
Date* NewDate() {
Date* date = (Date*)malloc(sizeof(Date));
return date;
}
int main() {
Date* date = NewDate();
date->year = 2021;
date->month = 9;
date->day = 1;
printf("Today is %d-%d-%d\n", date->year, date->month, date->day);
free(date);
return 0;
}
```
这个程序定义了一个结构体类型`Date`,包含年、月、日三个成员变量。`NewDate`函数使用`malloc`动态分配了一个`Date`类型的空间,并返回指向这个空间的指针。在`main`函数中,我们调用`NewDate`函数创建了一个`Date`类型的变量,并对其成员变量进行了赋值和输出。最后,我们使用`free`函数释放了这个变量所占用的空间,避免了内存泄漏的问题。