本文主要是介绍C语言(变长数组(VLA)和复合字面量),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
创作内容不易,学习的朋友麻烦关注下博主,后面学习不迷路。有不会的问题也可以论坛咨询博主,博主也会及时回复~~
目录
一.变长数组(VLA)
二.复合字面量
复合字面量使用
一.变长数组(VLA)
int sum2(int num[][2], int row);
从这个例子当中我们可以很清楚的看到,这个形参的模式是固定死的,就是该函数只能接受一个包含两个int类型数组的元素值。这样就有一点不好,接受的条件被固定死了,这个时候你或许就会想到常量和变量好像和这个问题的类似的地方,我们函数形参就像变量一样被固定死了。而我们想要做的就是通过变量的形式让函数形参变得更加的灵活。
所以变长数组允许使用变量表示数组得维度
Int a=4;
Int b=5;
double sales[a][b];
这个sales就是一个变长数组
这里要注意变长数组中得“变”不是指可以修改已创建数组的大小。一旦创建了变长数组,它的大小则保持不变,这里的“变”指的是:在创建数组时,可以使用变量指定数组的维度。
这里我们在来康一个带二位变长数组参数的函数
Int sum2d(int rows,int cols,int ar[rows][cols]);
前两个参数rows,cols用作第三个形参二维数组ar的两个维度。因为arde1声明要使用rows和cols,所以在形参列表中必须在声明ar之前先声明这两个形参
二.复合字面量
字面量是除符号常量外的常量
列如,1是int类型的字面量,1.1是double类型的字面量
我们来看下如何定义复合字面量
Int div[2] = {10,20};
变为复合字面量为
(int [2]){10,20}
去掉声明中的数组名,留下来的int[2]即是复合字面量的类型名
复合字面量使用
因为复合字面量是匿名的,所以不能先创建然后再使用它,必须在创建的同时使用它。使用指针记录地址就是一种用法
Int * pt1;
Pt1 = (int [2]){10,20}
复合字面量的类型名也代表首元素的地址,所以可以把它赋给指向int的指针
好了朋友们我们今天的内容到这就结束了,今天的内容到这里就结束了,如果有啥不会的朋友记得论坛里面提问哈~
如果朋友你感觉文章的内容对你有帮助,可以点赞,关注文章和专栏以及关注我哈,嘿嘿嘿我会定期更新文章的,谢谢朋友你的支持哈
这篇关于C语言(变长数组(VLA)和复合字面量)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!