关于二维数据中的一维指针作为函数参数和返回值

问题描述:

1 假定定义了一个二维数组用来存放多条(总20条)数据,每条数据长度为10,uchar message[20][10]

2 要将外部来的一条数据存放到缓冲区指定位置(入口参数 uchar *p,数据的开始地址)

3 要从缓冲区读出一条记录,将其输出(出口参数 uchar *p,数据的开始地址)。

那么该怎么写2个函数的形参/return值/返回值类型

答案:

void sendbuf(uchar a[10])

{

  ...将a[0]~a[9]的值拷贝到指定缓冲区buf[i][0~9]

}

uchar *p receivebuf(void)

{

  ...返return buf[i]  //相当于&buf[i][0]

}

调用 sendbuf(uchar *p);

uchar *p =receivebuf(void);

时间: 2024-10-16 13:08:07

关于二维数据中的一维指针作为函数参数和返回值的相关文章

二维数组转化成一维指针

二维数组转化为一维指针来使用本实例用到了随机数,链表生成,遍历,有待扩展 1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<time.h> 4 #include<math.h> 5 //定义个结构体Emp用来存放员工信息 6 typedef struct Emp 7 { 8 int eno; 9 char *ename; 10 int dno; 11 Emp *next; 12 13 }emp,*pemp

指针作为函数参数,修改实参值

1,指针作为函数参数, 指针可以指向内存中任意一个数据,通过间接引用能够在函数内修改函数外甚至系统中的数据; 为了避免指针作为函数参数导致数据被意外修改,我们可以使用const来保护指针所指向的数据; 2,指针作为函数返回值, 同别的数据类型int,float一样,指针也能够作为函数的一种返回值类型,把返回指针的函数称为指针函数; 返回的指针所指向的数据不能够是函数内部声明的变量; 更灵活的存储,使用数组的时候面临种尴尬:数组的存储空间必须在程序运行前申请,即数组的大小在编译前必须是已知的常量表

智能指针(shared_ptr,unique_ptr)作为函数参数或者返回值时的一些注意事项

当智能指针作为函数的参数或者返回值时,一直在纠结到底是用智能指针对象本身还是用原始指针.Herb Sutter大师的文章很好的解决了这个疑惑,参见网址: https://herbsutter.com/2013/06/05/gotw-91-solution-smart-pointer-parameters/ 总结起来如下 1. 不要传递shared_ptr本身,而是用原始指针.因为会有性能损失,原子操作的自增自减等. 使用f(widget *w) 不使用f(shared_ptr< widget >

指针作为函数参数返回地址(值)

1.单个的字符或者数字 void swap(int *a,int *b) { int temp=*a; *a=*b; *b=temp; } int main() { int a=10,b=100; swap(&a,&b); cout<<a<<"\t"<<b<<endl; return 0; } 2.字符串的情况(利用指向指针的指针) void test(char *src,char **dst) { *dst=src; }

2.12一级指针作为函数形参和返回值

[注:自己从老师讲解出理解的,不对的地方望指正] [注:本程序验证是使用vs2013版] [独学而无友,孤陋而寡闻] 原文地址:https://www.cnblogs.com/wlstm/p/11087382.html

C++ 二维数组(双重指针作为函数参数)

本文的学习内容参考:http://blog.csdn.net/yunyun1886358/article/details/5659851 http://blog.csdn.net/xudongdong99/article/details/6723163 1.使用二维数组作为形参的例子: void func(int arr[][10]) { } int main() { int array[10][10]; func(array); //用二维数组名作为实参,调用函数 } 上面的例子可以编译通过,

《剑指Offer》面试题:二维数组中的查找

题目 题目:在一个二维数组中,每一行都按照从左到右的顺序进行了排序,每一列都按照从上到下进行了排序. 输入这样的一个二维数组arr和一个整数k,判断数组中是否存在这个数. 思路 由于数组时有序的这样一个前提,因此 从右上角开始查找 :如果要查找的数比右上角的值大,则查找范围删除掉(并不是实际的删除,只需要改变下标即可)这一行,如果要查找的数比右上角的值小,则查找范围删除掉这一列:这样就可以将查找范围逐渐缩小,直至完成搜索 当然也可以从右下角开始查找,但是不可以从左上角或者是左下角开始查找(因为这

经典算法题-基础-二维数组中的查找

目录 问题描述 解题思路 相关代码 问题描述 题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. 要求 时间限制:1秒 空间限制:32768K 方法原型 public boolean find(int target, int [][] array) 输入输出例子 在以下二维数组中 { {1,2,8,9}, {2,4,9,12}, {4,7,10,

c++函数参数类型-值,指针,引用

    以" 值传递"方式向函数传递参数 在编写个人函数的时候,你将会受到C++中的一条基本的原则的限制:在默认的情况下,变量只能以值传递的方式传递给函数.这句话的意思是:被传递到函数的只是变量的值,永远不是变量的本身. 例如: void changeValue(int originalValue,int newValue){     originalValue = newValue;   }      int main(){     int myNum=20;     changeV