-
2021-10-25 16:16:58
当引用一个数组作为形参时:
#include <iostream> void a(unsigned char (&tmp)[200]) { printf("%x\r\n",tmp); sprintf((char *)&tmp,"aaaaaa"); } int main(int argc, char **argv) { unsigned char tmp[200] = {0}; printf("%x\r\n",tmp); a(tmp); printf("%s",tmp); return 0; }
输出结果:
61fd40 61fd40 aaaaaa
形参不想指定数组大小该如何编写?
#include <iostream> template<unsigned N> void a(unsigned char (&tmp)[N]) { printf("%x\r\n",tmp); sprintf((char *)&tmp,"aaaaaa"); } int main(int argc, char **argv) { unsigned char tmp[200] = {0}; printf("%x\r\n",tmp); a(tmp); printf("%s",tmp); return 0; }
输出结果:
61fd40 61fd40 aaaaaa
详细内容可以搜索:非类型模板参数
更多相关内容 -
C++引用数组
2017-11-16 16:49:47有些书上说,不能建立数组的引用,鄙人不敢苟同。int a= 10; int *p = &a; int &b = a;我发现引用的建立就是把int * p = & a中&和*互相调换,那么数组中是否也可以呢#include using namespace std;int main() { int...有些书上说,不能建立数组的引用,鄙人不敢苟同。
int a= 10; int *p = &a; int &b = a;
我发现引用的建立就是把int * p = & a中&和*互相调换,那么数组中是否也可以呢
#include<iostream> using namespace std; int main() { int arr[3]={1,2,3}; //int (*p)[3] = &arr; int (&p)[3] = arr;//一维数组 cout<<p[0]<<endl; cout<<p[1]<<endl; cout<<p[2]<<endl; cout<<"######################"<<endl; int brr[2][3] = {1,2,3,4,5,6}; //int ((*s)[2])[3] = &brr; int ((&s)[2])[3] = brr;//二维数组 cout<<s[0][0]<<endl; cout<<s[0][1]<<endl; cout<<s[0][2]<<endl; cout<<s[1][0]<<endl; cout<<s[1][1]<<endl; cout<<s[1][2]<<endl; return 0; }
以上代码,运行正常,所以,我认为,能建立引用数组,请多多指教
-
c++引用数组,数组引用
2014-08-07 20:23:35一、大概区别 就像指针的数组和数组的指针一样耐人寻味 ...//array首先和&结合,所以array是引用,引用的对象是数组 //应该叫作数组的引用 int (&array)[10] 二、引用的数组 首先,可以明确的说明, -
C++传参之引用数组
2021-11-02 10:19:42原帖见作者的个人博客:C++传参之引用数组 (wanyingjian.cn) 在C++中,有时候我们需要将数组作为参数传递到函数里去,常规的做法是: void fun(int* a) { cout << sizeof(a); //这里会输出4,即a这个指针...原帖见作者的个人博客:C++传参之引用数组 (wanyingjian.cn)
在C++中,有时候我们需要将数组作为参数传递到函数里去,常规的做法是:
void fun(int* a) { cout << sizeof(a); //这里会输出4,即a这个指针的大小 //接着对数组进行操作 }
但是这种做法丢失了一部分信息,有没有更加符合“语法”的写法呢?答案是有的:
void fun2(int* (&a)[100]) { cout << sizeof(a); //这里会输出400,即a数组的大小 //接着对数组进行操作 }
当要想限定传入数组的大小时,可以用上述的写法,其意思为“对数组a的引用”。同时应当注意,这种写法可以安全的使用sizeof()函数,当传入的数组大小不对时,编译器将会报错。
-
C++:引用(数组引用)
2021-11-26 10:27:09C++:引用(数组引用) 在C++里,数组引用如下: //第一种方法(常用) //1,定义数组类型 typedef int(my_arr)[5]; typedef int my_arr1[5]; //2,建立引用 my_arr1& arref = arr;//建立引用,相当于int &... -
C++数组的引用和引用的数组
2018-10-30 15:53:27转载:关于数组的引用和引用的数组 一、大概区别 就像指针的数组和数组的指针一样耐人寻味 //array首先向右结合,所以这个相当于 (int&)array[] array是个数组,其中的元素是引用 //应该叫:引用的数组 ... -
c++数组的引用
2019-04-04 17:41:31引用就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样。引用的声明方法:类型标识符 &引用名=目标变量名; 引用最大的好处就是提高函数效率以及节省空间; 关键问题一、传递引用与传... -
c++ const引用 和 引用数组总结
2021-07-08 15:40:40const类型 和 非 const类型,常引用 和 非const引用可以构成函数重载指针形参的const和非const也能构成重载,跟const 引用一样普通的形参变量 const和 非const 无法构成重载引用数组的2种格式: const 引用,又叫常引用,... -
C++以引用的方式传递数组实例
2021-01-19 11:29:20#include<iostream> using namespace std; void print(int(&p)[4]) ...这里需要注意引用传递数组需要将&p括起来,然后加上数组元素个数,必须得写清楚个数,这个个数等于传入的数组的大小 -
C++ 数组引用
2016-11-03 14:40:36c++,数组,数组引用,引用,引用传参 -
C++多维数组
2021-12-26 14:04:47严格来说,C++语言中没有多维数组,通常所说的多维数组其实是数组的数组。谨记这一点,对今后理解和使用多维数组大有益处。当一个数组的元素仍然是数组时,通常使用两个维度来定义它:一个维度表示数组本身大小,... -
关于C++中的数组引用
2018-08-31 18:26:29#include <iostream> void func(int (&a)[7]) { ...... ...... } int main() { int a[] = {1,2,3,4,5,6,7};...数组引用,有点像数组指针------int (*a)[7],这里的a就是指向一... -
c++ 数组引用
2019-12-07 09:55:35一维数组合、二维数组引用的方式类似,直接看代码就好。 #include<iostream> using namespace std; int main() { //一维数组 int m[4] = { 1, 2, 3, 4 }; int(&a)[4](m); for (int i = 0; i<4; i+... -
C++数组引用
2017-06-02 16:03:00C++数组引用 一、数组引用 C++数组的引用:引用即别名这样比指针传地址方便多了 形参中的(&a)[10]可以就看做a数组的别名,肯定要指定数组大小,如果没有后面的数组大小,天知道是变量还是数组 普通传值和... -
C++ 动态数组
2022-01-21 14:08:03C++语言和标准库提供了两种一次分配一个对象数组的方法。C++语言定义了另一种new表达式语法,可以分配并初始化一个对象数组。标准库中包含一个名为allocator的类,允许我们将分配和初始化分离。使用allocator通常会... -
C++ 二维数组参数传递的实现方法
2020-12-31 02:33:10C++ 二维数组参数传递的实现方法 int a[2][2]={ {4, 6}, {9, 11} }; 我定义了这样一个数组,我想把这个数组作为参数,传递到一个函数中,并要在函数中能引用该二维数组的元素,我该怎么做? 第一种方式是直接传递... -
python调用c++ ctype list传数组或者返回数组的方法
2020-09-19 15:25:07今天小编就为大家分享一篇python调用c++ ctype list传数组或者返回数组的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧 -
C++中数组作为函数参数的使用说明
2020-03-02 21:47:21我们一般使用函数时,函数参数大多数都是int,couble,char之类的类型,我们接下来可以看看当函数里需要用到数组时,c++是如何实现的。下面给出的例子是c++primer的例子,在此这里简化了下。 #include <... -
C++数组指针及引用
2020-02-28 12:42:19最近写代码,对于数组指针及引用的这部分内容有点忘了。 &和*的区别 &:与变量(如a)在一起为取地址,与变量类型(如int)结合为引用。取地址就是指针,引用就是变量别名,使用同一空间。 *:与变量在一起... -
C++ 数组作为参数的引用传递
2021-06-22 13:16:27C++ 数组作为参数的引用传递形参实参合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个... -
C++关于数组引用做函数形参
2020-01-02 10:52:57# include using namespace std ; void func ( int ( & a ) [ 5 ] ) { ...数组引用做函数形参时,必须给形参指定长度,其写法如上。 为什么?考完试再去找一下学习资料。 -
C#调用C++ Dll关于结构体数组引用的传递及解析使用的展示代码
2018-09-20 15:02:59资源代码演示的是c#代码调用c++ DLL 的方式。该演示为原创,绝非搬砖。解决了c# 调用 C++ Dll获取相关信息之如何传递结构体数组引用以及如何处理获取到的结构体数组数据的问题。 -
c/c++传递数组给函数的三种方法
2020-05-10 07:25:56c++传递数组给函数的三种方法: c++中您可以通过指定不带索引的数组名来传递一个指向数组的指针。传递数组给函数,数组类型会自动转化为指针类型,因而传的实际是地址。 方式1: 形式参数是一个指针 void myFunction... -
C++ 指针 const 数组 引用
2020-03-13 13:23:22指针和const 禁止改写指针(常量指针或常指针) ...禁止改写间接引用 int x=5; const int *pInt=&x; pInt中存放的地址可以变,但x的值不可变。 既禁止改写指针,又禁止改写间接引用 int x=5; const int *... -
C++ 返回数组的引用
2017-02-27 15:25:32//返回值是数组名的声明方法 #include using namespace std; int arrone[] = { 1,2,3,4,5 }; int arrtwo[] = { 6,7,8,9,10 }; //利用传统方法定义类型别名 typedef int iarr1[5]; //利用C++11定义类型别名 ... -
C++数组引用传递
2019-09-04 17:51:23引用传递似乎有两种方式,一种指定长度的方式,一种模板类的方式 void pp(int(&ch)[8]){ //int len = strlen(ch); cout << sizeof(ch)/sizeof(ch[0]); } template<class T> int length(T&... -
C++中不允许定义引用数组
2020-12-17 09:06:10首先,什么叫引用数组?顾名思义,就是一个数组,...C++中引用没有引用数组 可以改成这样 int (&b)[3] = p; // b本身是一个引用,b不是数组。 这样就可以使用 int (&b)[3]=p; int (&b)[3]; int *p=(&b -
C++的一般引用及其数组引用
2014-06-12 10:10:41引用就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样。 引用的声明方法:类型标识符 &引用名=目标变量名; 【例1】:int a; int &ra=a; //定义引用ra,它是变量a的引用,即别名 ... -
C++ 空数组&指针&引用&空类(空对象)
2020-02-08 18:38:54空数组是指长度为0的数组(int[]或int[0])。 int[]仅可用在类或结构体中。 空数组不占空间。 空数组无需初始化,数组名直接就是所在的偏移。 举个例子: /// @author zhaolu struct Data { int i; int ptr[]; }; ...
收藏数
221,701
精华内容
88,680