想问一下既然后面X = code_tab[*p]; 要根据 p 所指向的值作为索引,从 code_tab 数组中取得对应的值,那么为什么定义指针变量p为char类型呢,难道不应该是数字类型比如 int uint_8t之类的吗
必须是char类型哦!因为图上有一个函数的赋值,*p=x;如果不是char型,而是uint_8类型,赋值操作的数据可能会发生变化!
不知道你这个问题是否已经解决, 如果还没有解决的话:对于这个问题,使用char类型作为指针类型的选择可能是因为指针所指向的是一个字符数组,字符数组的每个元素都是一个char类型的字符,所以使用char类型作为指针类型能更好地与字符数组对接,并且在使用指针从字符数组中取值时可以避免类型转换的麻烦。
如果想要在code_tab数组中通过指针作为索引获取对应的值,可以将指针类型转换为int类型,再作为索引使用。示例代码如下:
char* p;
int index = (int)p;
int value = code_tab[index];
但是要注意,直接将指针类型转换为int类型可能会导致一些问题,比如在不同的操作系统或编译器下,int类型可能的值范围不同,可能导致越界等问题。因此,在进行类型转换时,应该仔细考虑边界情况,并且尽量避免使用指针作为索引。