我从c编程开始,我想我不确定使用unsign的变量。我知道uint8_t是一个无符号的 8 位整数类型,这意味着它不能是负数,因此将所有 8 位留给正数,这表示从 0 到 255 的数字。但我不知道为什么如果我写这个:
int main() {
uint8_t value [4];
printf("nvalue:t%" PRIu8 "", value[0]);
printf("nvalue:t%" PRIu8 "", value[1]);
printf("nvalue:t%" PRIu8 "", value[2]);
printf("nvalue:t%" PRIu8 "", value[3]);
printf("n");
}
每次我做的时候我都会得到不同的结果:./测试:
test@test:~/Desktop$ ./test
value: 48
value: 99
value: 13
value: 193
test@test:~/Desktop$ ./test
value: 176
value: 76
value: 71
value: 0
test@test:~/Desktop$ ./test
value: 64
value: 13
value: 5
value: 175
为什么我在值[x]中得到不同的数字?
读取未初始化变量的值是未定义的行为。换句话说,C 编程语言的规则不描述或约束程序的行为方式。
为了使程序运行良好,您需要在读取变量之前为其赋值,例如:
uint8_t value[4] = { 3, 19, 26, 1 };