"&"要求左值
时间: 2023-07-02 17:15:07 浏览: 224
Introduction to 3D Game Programming with Direct3D 12.0实例打包(directx12龙书)
对的,"&"是取地址运算符,要求其右侧必须是一个左值,即可以被取地址的表达式。对于结构体,我们通常需要先创建一个实例对象,然后再通过实例对象来访问结构体的成员,这样可以得到一个左值。
例如,对于以下的结构体定义:
```c++
struct MyStruct {
int x;
int y;
};
```
我们可以这样创建一个结构体的实例对象:
```c++
MyStruct s;
```
然后通过实例对象来访问结构体的成员,并使用取地址运算符来获取成员的地址:
```c++
int* px = &s.x;
int* py = &s.y;
```
这样就可以得到结构体成员的地址了。所以在你的代码中,需要先创建一个tm结构体的实例对象,然后再使用取地址运算符来获取这个实例对象的地址,例如:
```c++
struct tm t = { 0 };
t.tm_year = orderYear - 1900;
t.tm_mon = orderMonth - 1;
t.tm_mday = orderDay;
t.tm_hour = 0;
t.tm_min = 0;
t.tm_sec = 0;
time_t orderTime = mktime(&t);
```
阅读全文