
正文
单片机c语言不同数组能用变量吗,单片机c语言定义数组
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
C语言中数组长度能使用变量定义吗?
1、不可以,数组在创建时长度已经确定了,而且创建后也无法更改数组的长度,楼上说的malloc动态申请的内存也是已确定的,你都不能在 不破坏原有数据的情况下改变其大小。
2、在有的编译器中数组在定义时用的必须是常量,不能是变量。
3、纯C编译器是不允许用变量定义数组长度的,编译都过不了。
相关问答
Q1: c语言中可不可以用变量定义数组的个数
要实现用变量定义数组的元素个数即维数,可以使用malloc()和free()来进行动态内存分配 。
可以的,C语言肯定是不会考虑的那么不全面的,你可以百度一下C数组vector的用法,就知道了。
呵呵,这是C语言的编译器决定的。你用的是DevC++编译器,他是C++的基础上向C(向下兼容的)。如果你用TC就不行了。
C语言里,所有变量空间都是在程序运行之初向系统申请的,包括指针,除了一些动态申请方式如malloc函数。没有申请的空间系统是不允许读写的。
Q2: 关于c语言数组的方括号中能不能使用变量的问题。
方括号里必须是一个大于零的整数常量或者常量表达式。常量表达式(const experssion):是指值不会改变 并且在编译过程就能得到计算结果的表达式。字面量属于常量表达式,用常量表达式初始化的const对象也是常量表达式。
方括号里必须是一个大于零的整数常量或者常量表达式。 常量表达式(const experssion):是指值不会改变 并且在编译过程就能得到计算结果的表达式。字面量属于常量表达式,用常量表达式初始化的const对象也是常量表达式。
怎么说呢,都不是很对,因为说的不严谨。在定义数组时,必须指定大小,因此在定义数组的时候,数组名后的方括号里是不能有变量的,只能是常量表达式。但是在引用数组元素的时候是可以有变量的。
数组定义时方括号内不能使用变量,好像是数组在编译时就要分配内存之类的,不确定大小无法分配内存;定义完成之后可以使用变量调用数组的值。
定义。当用于定义时,数组方括号[]中的是数组含有的元素个数,即定义了数组的规模。这种情况下,按照ANSI C的标准,是不可以用变量的。不过目前有些编译器支持了C99及以上规范,在C99下,C语言数组定义时可以使用变量。
Q3: 我想问问,我能否在单片机C51中定义一个空数组,然后向里面写值,改变值...
1、很简单,定义一个指定长度(必须有)的数组,不初始化就可以了,最好指定一下存储段,在访问时可以优化一些。
2、code 为关键字,表示asbp[]数组是存在在ROM空间中,是不可改变的(只读),主程序或函数可以读取里面的值但不能写。这是用于存放一些常量数据、字表一类所使用的。
3、在C51中,code是关键字,它指定编译器将定义的量存放在程序存储区,也就是定义的是常量,是不能在程序中修改的。
Q4: 51单片机如何设置数组变量?
如果是常数数组,可以定义到代码里面,code char cc[1024][10],这种程序只能读,不能改,像字库点阵一般用这种。如果有足够的外部RAM,xdata char xx[1024][10];这是把数组定义到外部RAM,需要用MOVX访问。
,开辟一个足够大的数组:例如 int buf[1024];也就是说这个数组能满足你所需要的所有情况,这种方法的优点是,查询速度块,方便 但是当数据每次都很少的时候会浪费空间,对空间利用要求比较高的不适用 2,使用链表。
比如unsigned char a [10],注意,后面的10是必要的。这是在做单片机程序,必须要有这个数量。定义了以后,使用起来a [x]就跟普通变量一样,x可以是定值0--9,也可以是变量(0--9以内),用以寻址。
不确定你如何用数线呢?51单片机不支持动态数组,本身只有那么一点儿内存,你必须先明确需要多大数组。一个办法是声明足够用的数组,比如text[16],并在程序中判断不要超出数组范围。
Q5: 51单片机c语言的数组可以包含变量吗?
1、你的理解有误,单片机数组不会自动改变数据,得用指令改变数据,如果你是存储数组地址是可以的,比如uint8 Tab[ ]={&fate,&hour,&min,&sec};用指针就可以操作。也不用存储动态数据,这样问题就简单了。
2、数组元素本来就是变量,但是不能为表达式,数组元素的下标表示的时候可以是变量或表达式。
3、不能。第一:你所说的变量没有定义。第二:数组已经定义整型a1这些变量不是整型。第三:数组名与第一个元素是地址常量,是不能被改变的。宗上所述,你所说的是不能的。
4、可以是变量的。程序是对的。这个一看就是数码管显示程序。
关于单片机c语言不同数组能用变量吗和单片机c语言定义数组的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。






