一个未见过的操作
定义如下的结构体:
struct Point {
int x, y;
}
为该结构体实现两个构造函数:
Point()
Point(int _x, int _y)
在main函数中进行如下步骤:
- 定义一个Point类型的变量
Point point
- 输入两个正整数x、y
- 通过
Point(x, y)
的方式构造一个Point并赋值给前面已定义好的point变量 - 输出
point.x
与point.y
- 体会并理解上面的过程
注:
- 请实现结构体的构造函数来完成功能,不要直接输出输入的内容
参考代码:
#include <cstdio>
struct Point {
int x, y;
Point() {} //结构体中书写赋值函数
Point(int _x, int _y) {
x = _x;
y = _y;
}
};
int main() {
Point point;
int x, y;
scanf("%d%d", &x, &y);
point = Point(x, y); //使用赋值函数
printf("%d %d", point.x, point.y);
return 0;
}
. 与->区别:
由此可以推测出.运算符和->运算符的区别:对结构体的变量操作时需要使用.运算符,相当于直接寻址。对结构体指针的变量操作时需要使用->运算符,相当于间接寻址