struct student{ int number; char *name; char sex; float score; };怎样访问name
时间: 2024-03-08 12:49:49 浏览: 139
结构体student中的name成员是一个指向char类型的指针,因此访问name需要使用间接访问运算符 ->。示例代码如下:
```c
struct student {
int number;
char *name;
char sex;
float score;
};
int main() {
struct student stu;
stu.name = "Tom"; // 给name赋值
printf("Name: %s\n", stu.name); // 使用间接访问运算符 -> 访问name成员
return 0;
}
```
在上面的代码中,我们定义了一个结构体student,其中包含一个指向char类型的指针name。接着定义了一个结构体变量stu,并使用stu.name将指针指向一个字符串。最后使用间接访问运算符 -> 访问name成员,并输出结果。
需要注意的是,访问结构体中的指针时要确保指针指向的内存已经被分配和初始化,否则可能会导致访问非法内存的错误。
相关问题
struct Student { int num; //学号为整型 char name[20]; //姓名为字符串 char sex; //性别为字符型 int age; //年龄为整型 float score; //成绩为实型 char addr[30]; //地址为字符串 };
这是一个结构体定义,表示一个学生的信息,包括学号、姓名、性别、年龄、成绩和地址。可以用以下方式来访问和修改这个结构体的成员变量:
```c++
#include <iostream>
#include <cstring>
using namespace std;
struct Student {
int num;
char name[20];
char sex;
int age;
float score;
char addr[30];
};
int main() {
Student stu;
stu.num = 1001;
strcpy(stu.name, "Tom");
stu.sex = 'M';
stu.age = 18;
stu.score = 90.5;
strcpy(stu.addr, "Beijing");
cout << "Student information:" << endl;
cout << "Number: " << stu.num << endl;
cout << "Name: " << stu.name << endl;
cout << "Sex: " << stu.sex << endl;
cout << "Age: " << stu.age << endl;
cout << "Score: " << stu.score << endl;
cout << "Address: " << stu.addr << endl;
return 0;
}
```
这里定义了一个名为 `stu` 的 `Student` 类型的变量,通过点号操作符来访问和修改其成员变量。注意字符串类型需要使用 `strcpy` 函数来赋值。输出结果为:
```
Student information:
Number: 1001
Name: Tom
Sex: M
Age: 18
Score: 90.5
Address: Beijing
```
用c++解答:学生拥有学号(number)、姓名(name)、性别(sex)、年龄(age)、成绩(score)五个属性,定义一个学生结构体student,在主函数中该结构体类型的两个变量stu1和stu2,并为两个变量赋值,要求为stu1变量各成员采取定义的同时赋初值,为stu2变量的各成员采取先定义再赋值,最后输出两个结构体变量的各成员。
#include <stdio.h>typedef struct student
{
int number;
char name[20];
char sex;
int age;
float score;
}student;int main()
{
student stu1 = {1001,"张三",'男',18,87.5};
student stu2;
stu2.number = 1002;
strcpy(stu2.name, "李四");
stu2.sex = '女';
stu2.age = 19;
stu2.score = 90.5;
printf("stu1的学号:%d,姓名:%s,性别:%c,年龄:%d,成绩:%.2f\n", stu1.number, stu1.name, stu1.sex, stu1.age, stu1.score);
printf("stu2的学号:%d,姓名:%s,性别:%c,年龄:%d,成绩:%.2f\n", stu2.number, stu2.name, stu2.sex, stu2.age, stu2.score);
return 0;
}
阅读全文