当前位置:首页 » 编程软件 » 编译器确定

编译器确定

发布时间: 2024-10-28 23:56:27

❶ 在c语言中,二维数组元素在内存中的存放顺序是 A按行存放 B按列存放 C由用户自己定义 D由编译器决定

c语言中,二维数组元素在内存中是按行存放的。

二维数组本质上是以数组作为数组元素的数组,即“数组的数组”,类型说明符 数组名[常量表达式][常量表达式]。二维数组在概念上是二维的,即是说其下标在两个方向上变化, 下标变量在数组中的位置也处于一个平面之中, 而不是象一维数组只是一个向量。

但是,实际的硬件存储器却是连续编址的, 也就是说存储器单元是按一维线性排列的。如何在一维存储器中存放二维数组,可有两种方式:一种是按行排列, 即放完一行之后顺次放入第二行。另一种是按列排列, 即放完一列之后再顺次放入第二列。在C语言中,二维数组是按行排列的。

例如:float a[3][4],b[5][10]; 定义a为3*4(3行4列)的数组,b为5*10(5行10列)的数组。注意,不能写成 float a[3,4],b[5,10]; 具体可以表示:a[3][4]={ {1,2,3,4},{5,6,7,8},{9,10,11,12} }

(1)编译器确定扩展阅读:

1、表示方法:

数组元素也是一种变量, 其标识方法为数组名后跟一个下标。下标表示了元素在数组中的顺序号。数组元素的一般形式为:数组名[下标] 其中的下标只能为整型常量或整型表达式。如为小数时,C编译将自动取整。例如,a[5],a[i+j],a[i++]都是合法的数组元素。数组元素通常也称为下标变量。必须先定义数组, 才能使用下标变量。

2、赋值方法:

初始化赋值的一般形式为:static类型说明符数组名[常量表达式]={值,值……值}; 其中static表示是静态存储类型, C语言规定只有静态存储数组和外部存储数组才可作初始化赋值。在{ }中的各数据值即为各元素的初值, 各值之间用逗号间隔。例如:static int a[10]={ 0,1,2,3,4,5,6,7,8,9 }; 相当于a[0]=0;a[1]=1...a[9]=9;

3、使用规则:

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

二、数组名的书写规则应符合标识符的书写规定。

三、数组名不能与其它变量名相同。

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

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

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

七、假如给全部元素赋值,则在数组说明中, 可以不给出数组元素的个数。例如:static int a[5]={1,2,3,4,5}; 可写为:static int a[]={1,2,3,4,5};动态赋值可以在程序执行过程中,对数组作动态赋值。这时可用循环语句配合scanf函数逐个对数组元素赋值。

参考资料来源:网络-二维数组

网络-数组

❷ 编译器如何确定源代码的有效性

编译器使用词法分析、语法分析和语义分析三个程序功能模块检验源程序是否符合相关规则,符合无错就认为是有效的。

编译器使用目标代码生成程序功能模块生成目标代码,生成过程依据语法分析生成的语法树和语义检查及转换规则,保证生成的目标代码与源程序的算法功能等价。

目标文件与源程序算法功能是等价的,当然具有你说的算法特性。算法依靠指令的选用、指令的顺序及存储空间的使用来实现。没有顺序就没有算法。

❸ 请问编程语法规则,是不是根据不同编译器来定的

不,一个语言的语法是早就确定好的,它有一个统一标准——例如 ANSI C。
不同编译器可能有些许不同,比如有的编译器a=b=c结果很可能不一样(所以我们很少这么用
但是大体上,一个语言的编译器得出的结果是一样的,是根据语法规则做出编译器而非编译器确定语法规则。
zhengshu a=0,编译器肯定不认,理由是没有这个type;但是你可以通过typedef自定义任意的类型。

int是一种type,而type varlist;是声明变量的语法(int a; char b;)

你写了int a=0;那么这时编译器做的就是在内存中开出一个能存int数据的空间,然后把0给填进去,再记录下这块内存的地址,并记住这个地址叫做a。至于分析代码什么的,就是编译器的事情了。

——以上。

热点内容
嵌入式数据库是 发布:2024-10-29 02:25:53 浏览:3
如何破解exe加密视频 发布:2024-10-29 01:57:35 浏览:841
pythonsnmp交换机 发布:2024-10-29 01:56:53 浏览:509
光盘如何存储数据 发布:2024-10-29 01:46:38 浏览:290
安卓如何传送音乐文件给苹果 发布:2024-10-29 01:20:57 浏览:520
儿童节编程 发布:2024-10-29 01:20:22 浏览:244
搭建和平精英服务器教程 发布:2024-10-29 00:51:27 浏览:311
武汉理工大学认证服务器地址失败 发布:2024-10-29 00:38:58 浏览:783
c语言单片机什么意思 发布:2024-10-29 00:22:03 浏览:299
php发送邮件乱码 发布:2024-10-29 00:19:24 浏览:60