我想澄清一件事。以下是我应该做的:
void key_print1(Key key);
打印一个密钥,key –> key1 然后 key–> key2
根据我的理解,我正在创建一个名为 key 的指针变量,它指向 key1 的内存地址,然后它指向 key2 的内存地址。我不明白为什么我的代码有错误?我对说明的理解有误吗?
void key_print1(Key key) {
Key key1;
Key key2;
Key* key = &key1;
// Key* key = &key2;
printf("%p", key);
typedef float* Data;
typedef char* Key1;
typedef int Key2;
typedef struct {
Key1 key1;
Key1 key2;
} Key_struct;
typedef Key_struct* Key;
void key_print1(Key key);
我不确定我是否完全理解你想要做什么,但我看到了一些大错误。
首先,您使用不同的类型重新定义密钥,这是一个错误。事实上,参数中给出的变量 key 是
Key
类型,但是 Key* key = &key1;
将其重新定义为 *Key
,这是一种不同的类型。实际上,你甚至不能重新定义相同类型的变量:int a = 1
;然后 int a = 2
是错误的,但是 int a = 1;
然后 a = 2
是正确的。
那么,
key1
和key2
是什么?您使用了未定义的变量,这是一个错误。
此外,你应该真正弄清楚
key1
和 key2
是什么,因为现在很难理解你想要做什么。