提问:
变量被定义后,它不仅有一个确定的地址值,而且还会有一个确定的本身值。
这句话是对是错,如果不对,为什么?
这句话是错的。C语言变量被定义后,它只有一个确定的地址值,本身值是在程序运行时才确定的。在程序编译时,变量的类型和大小已经被确定,但变量的具体值需要在程序运行时才能确定。
是不准确
变量在被定义后确实具有一个确定的内存地址,但是它并不一定具有一个确定的初始值
除非显式地给变量赋予初始值
我们看下面两段代码
typedef struct
{
uint16_t ecd;
int16_t speed_rpm;
int16_t given_current;
uint8_t temperate;
int16_t last_ecd;
} motor_measure_t;
uint8_t rx_data[8];
static motor_measure_t motor_chassis[7];
get_motor_measure(&motor_chassis[i], rx_data);