❶ c语言中数组长度不能用变量定义吗
1、C语言中不支持。
C++中支持变长数组(你可以自行度娘变长数组和alloca函数),但是因为其实在栈上分配,不被推荐使用。做为解决方案,你可以使用C式的malloc函数或者C++式的new函数来在堆上动态分配内存,这样长度是完全可以自定的。
2、C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。
3、、在数组一章中,曾介绍过数组的长度是预先定义好的, 在整个程序中固定不变。C语言中不允许动态数组类型。例如: int n;scanf("%d",&n);int a[n]; 用变量表示长度,想对数组的大小作动态说明, 这是错误的。但是在实际的编程中,往往会发生这种情况, 即所需的内存空间取决于实际输入的数据,而无法预先确定。对于这种问题, 用数组的办法很难解决。
4、为了解决上述问题,C语言提供了一些内存管理函数,这些内存管理函数可以按需要动态地分配内存空间, 也可把不再使用的空间回收待用,为有效地利用内存资源提供了手段。 其它文献中所提到的"动态数组",指的就是利用内存的申请和释放函数,在程序的运行过程中,根据实际需要指定数组的大小.其本质是一个指向数组的指针变量.常用的内存管理函数有以下三个:分配内存空间函数malloc;分配内存空间函数 calloc;释放内存空间函数free。
❷ C语言 如何把一个变量值赋给一个数组。
呵呵.你可以使用一个函数名字叫sprintf
下面是我给你写的详细代码你可以参考下
#include
<stdio.h>
int
main()
{
int
a=200;
char
im[]={"hello"};
sprintf(im,"%d",a);
//第一个参数是接受复制的char变量中间是格式化如果换成%c就是按照字符赋值.最后是赋值变量
printf("%s\n",im);
}
❸ 在C++中如何以变量建数组(求一些巧方法)
数组是做为静态变量出现的,其大小不允许进行动态定义是很正常的。如果需要动态定义数组的长度的话,就必须使用指针(数组的变量名就是一个指向数组空间的指针常量),利用new运算符动态的定义“数组”空间的大小。
其示销梁例如下:
int n;
cin >> n;
int *a = new int[n];
int i;
for (i = 0 ; i < n ; i++)
{
cin >> a[i];
}
必须要说的是楼上的方法只适用于GCC体系的编译器而不适合VC,而且,阁下必须保证你要用到的数组z只在那个括号(即作用域)中有效,亏凳运出了那个括号,指针将立刻失去目标,数据就粗答丢失了。
❹ C语言 如何定义数组形式的变量
数组在C语言里很常见的
如:
int number[10];
int number[10][10];
定义加初始化如:
int number[10]={x,...,x};
int number[10][10]={{x,...,x},{x,...x},...,{x,...,x}};
x为数据[10]内为数组长度,一维数组在定义时初始化时可省略数组长度
引用时直接使用number[n]即可
❺ c语言如何定义数组
c语言定义数组的方法是:C语言中,同变量一样;数组也必须先定义后使用。一维数组的定义形式。
1、类型标识符,数组名[常量表达式];例如int a[10];其中a为地址常量。
2、如变量的定义一样,inta;double a;floata等;数组的定义只是把后面的变量名改为数组名而已。
3、int a[10]就是定义了一个数组名为a的数组;此数组有10个元素。其中各元素从a[0]到a[9];并没有a[10]元素。
❻ c语言中可不可以用变量定义数组的个数;
c语言中不可以用变量定义数组的个数。
可以使用mallo函数
mallo函数返回的实际是一个无类型指针,必须在其前面加上指针类型强制转换才可以使用;
指针自身=(指针类型*)malloc(sizeof(指针类型)*数据数量);
int*p=NULL;
intn=10;
p=(int*)malloc(sizeof(int)*n);
(6)以变量设定数组c语言扩展阅读
mallo函数使用注意事项
调用malloc函数时,它沿连接表寻找一个大到足以满足用户请求所需要的内存块。然后,将该内存块一分为二(一块的大小与用户请求的大小相等,另一块的大小就是剩下的字节)。接下来,将分配给用户的那块内存传给用户,并将剩下的那块(如果有的话)返回到连接表上。
调用free函数时,它将用户释放的内存块连接到空闲链上。到最后,空闲链会被切成很多的小内存片段,如果这时用户申请一个大的内存片段,那么空闲链上可能没有可以满足用户要求的片段了。
❼ c语言中可不可以用变量定义数组的个数
数组不可以,但是有变通的方法
intn;
scanf("%d",&n);
int*s;
s=(int*)malloc(sizeof(int)*n);
//相当用定义了一个长度为n的int数组,调用和数组一样,s[0],s[1].....
❽ C语言怎么用变量定义来数组元素个数
定义时直接用变量乱孙不行,但可以先定义一个逗唯希望数组类型的指针,使用的时候动态申请变量所表示的大小,并赋值给前定义指针,申请成功后就可山陪培以像数组一样使用了(指针名就是数组名)
int
*myarr;
int
size;
size
=
10;
myarr
=
(int
*)malloc(size
*
sizeof(int));
myarr[0]
=
123;
myarr[size-1]
=
999;
❾ C语言 如何把一个变量值赋给一个数组
这个"如何"其实没有标准答案,因为int变量和该数组没啥关系,你想知道如何必须首先定义放的规则