我真的对uint32_t
指针在 C++ 中的工作方式感到困惑
我只是在尝试学习TEA,我不明白他们何时将uint32_t参数传递给 encrypt 函数,然后在函数中声明了一个uint32_t变量并将参数分配给它,就好像参数是一个数组一样。
像这样:
void encrypt (uint32_t* v, uint32_t* k) {
uint32_t v0=v[0], v1=v[1], sum=0, i;
所以我决定尝试使用 uint32_t 指针,并编写了以下短代码:
int main ()
{
uint32_t *plain_text;
uint32_t key;
unsigned int temp = 123232;
plain_text = &temp;
key = 7744;
cout << plain_text[1] << endl;
return 0;
}
当输出是“key”的值时,这让我大吃一惊。我不知道它是如何工作的......然后当我尝试使用plain_text [0]时,它返回了“temp”的值。
所以我被困在地狱里,试图了解正在发生的事情。
回顾 TEA 代码,是uint32_t* v
指向数组而不是单个 unsigned int 吗?我所做的只是侥幸吗?