当前位置:首页 » 编程语言 » c语言不同数组能用变量吗
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言不同数组能用变量吗

发布时间: 2022-08-18 08:56:54

c语言 a[5] 数组 里面的5可以用变量来代替吗如果我要输入a[]这里面的值我该怎么办

可以用变量的。

㈡ c语言 数组元素能为变量吗

不能。
第一:你所说的变量没有定义。
第二:数组已经定义整型a1这些变量不是整型。
第三:数组名与第一个元素是地址常量,是不能被改变的。
宗上所述,你所说的是不能的。

㈢ 关于c语言数组的方括号中能不能使用变量的问题。

方括号里必须是一个大于零的整数常量或者常量表达式。

常量表达式(const experssion):是指值不会改变 并且在编译过程就能得到计算结果的表达式。字面量属于常量表达式,用常量表达式初始化的const对象也是常量表达式。

一个对象(或表达式)是不是常量表达式由它的数据类型和初始值共同决定。

const int a =1; //常量表达式

cosnt int b=a+1; //常量表达式

int c=2; //初始值是字面值常量,当c数据类型是普通int。

(3)c语言不同数组能用变量吗扩展阅读:

1.数组的类型实际上是指数组元素的取值类型。对于同一个数组,其所有元素的数据类型都是相同的。

2.可以只给部分元素赋初值。当{ }中值的个数少于元素个数时,只给前面部分元素赋值。例如:static int a[10]={0,1,2,3,4};表示只给a[0]~a[4]5个元素赋值,而后5个元素自动赋0值。

3.只能给元素逐个赋值,不能给数组整体赋值。例如给十个元素全部赋1值,只能写为:static int a[10]={1,1,1,1,1,1,1,1,1,1};而不能写为:static int a[10]=1;(请注意:在C、C#语言中是这样,但并非在所有涉及数组的地方都这样,数据库是从1开始。)

4.若不给可初始化的数组赋初值,则全部元素均为0值。

网络-数组

㈣ C语言中数组中的元素可以是变量吗

当然可以,但是后面一定要对变量赋值
数组里的内容还有数组长度都可以是变量

㈤ C语言的数组可以用变量定义吗

可以的,C语言肯定是不会考虑的那么不全面的,你可以网络一下C数组vector的用法,就知道了。

㈥ c语言中可不可以用变量定义数组的个数;

c语言中不可以用变量定义数组的个数。

可以使用mallo函数

mallo函数返回的实际是一个无类型指针,必须在其前面加上指针类型强制转换才可以使用;

指针自身=(指针类型*)malloc(sizeof(指针类型)*数据数量);

int*p=NULL;

intn=10;

p=(int*)malloc(sizeof(int)*n);

(6)c语言不同数组能用变量吗扩展阅读

mallo函数使用注意事项

调用malloc函数时,它沿连接表寻找一个大到足以满足用户请求所需要的内存块。然后,将该内存块一分为二(一块的大小与用户请求的大小相等,另一块的大小就是剩下的字节)。接下来,将分配给用户的那块内存传给用户,并将剩下的那块(如果有的话)返回到连接表上。

调用free函数时,它将用户释放的内存块连接到空闲链上。到最后,空闲链会被切成很多的小内存片段,如果这时用户申请一个大的内存片段,那么空闲链上可能没有可以满足用户要求的片段了。

㈦ c语言中,数组元素可以是变量或表达式吗

数组元素 可以赋值为变量或表达式。
但实际存储的只能是最终运算的值。
比如 赋值
a[0]=1+2;
那么a[0]的值就是3. 无法得知这个3是怎么计算过来的。

㈧ C语言中可以定义不定长度的数组(即数组长度由变量确定)吗

不可以,数组在创建时长度已经确定了,而且创建后也无法更改数组的长度,楼上说的malloc动态申请的内存也是已确定的,你都不能在 不破坏原有数据的情况下改变其大小。
那怎么储存未知大小的数据呢,在储存后怎样能随意的对其添加、更改、删除、查找等一系列操作呢?只用简单的数组肯定不行,需要用到别的数据结构,如链表、二叉树等等,总有一款适合你。在大家学到数据结构与算法的时候 ,一切难题都将迎刃而解。
最后补充一点,楼上有人说数组的长度不能用变量来确定,这是错误的。 C中有 变长数组 的概念呀(c99标准),“变长”的意思就是 可以用变量来指定数组的长度,而数组一旦创建 长度就无法变化了,而且变量必须赋值在先,变长数组才能创建。某些人不能因为无法正确的设置编译器支持c99标准,而否定了 变长数组 这个用法。

㈨ 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语言中可不可以用变量定义数组的个数

数组不可以,但是有变通的方法

intn;
scanf("%d",&n);
int*s;
s=(int*)malloc(sizeof(int)*n);
//相当用定义了一个长度为n的int数组,调用和数组一样,s[0],s[1].....