说明
指针,是C语言中的一个重要概念及其特点,也是掌握C语言比较困难的部分。指针也就是内存地址,指针变量是用来存放内存地址的变量,在同一CPU构架下,不同类型的指针变量所占用的存储单元长度是相同的,而存放数据的变量因数据的类型不同,所占用的存储空间长度也不同。有了指针以后,不仅可以对数据本身,也可以对存储数据的变量地址进行操作。 来自 指针的百度百科baike.baidu.com/item/%E6%8C…
背景
因为不止一个参数,不能用return的方式返回。同时,若用全局变量的方式,则只能用于传递同一组参数。若采用指针传递方式,则可实现传递两个参数,并具有通用性。。。 所以使用指针传递的方式,实现返回多个变量。
void Get_Value_2(unsigned int*data0,unsigned int *data1) { //buf中数据长度 unsignedshort buf_len = 0; //buf数据中值的位数 unsignedshort buf_data_len = 0; unsignedshort buf_data_len_0 = 0; unsignedshort buf_data_len_1 = 0; unsignedchar i = 0; buf_len= Version_buf[2]; buf_len<<= 8; buf_len|= Version_buf[1]; buf_data_len= buf_len - 1 - 5; buf_data_len_0= 0; for(i= 0;i< buf_data_len;i++) { if(Version_buf[8+i]!= 0x2C) buf_data_len_0++; else break; } //总的长度减去逗号1个字符 buf_data_len_1= buf_data_len - buf_data_len_0 - 1; *data0= 0; for(i= 0;i< buf_data_len_0;i++) { *data0+= (Version_buf[8+i]-0x30)*pow(10,buf_data_len_0 - 1 -i); } *data1= 0; for(i= 0;i< buf_data_len_1;i++) { *data1+= (Version_buf[8+buf_data_len_0+1+i]-0x30)*pow(10,buf_data_len_1 - 1 -i); } }