指针妙用之将函数中形参的值传递给实参

182 阅读1分钟

\

说明

指针,是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);

     }

}