在c语言中怎么定义数组a[]

在c语言中怎么定义数组a[],第1张

C语言中,同变量一样;数组也必须先定义后使用。

一维数组的定义形式:

类型标识符  数组名[常量表达式];例如int a[10];   其中a为地址常量。

如变量的定义一样,int a ;double a;float a等;数组的定义只是把后面的变量名改为数组名而已。

int a[10]就是定义了一个数组名为a的数组;此数组有10个元素。其中各元素从a[0]到a[9];并没有a[10]元素。下面列举一个。

扩展资料

常量表达式可以包括字面常量和符号常量;但不能包含变量。例如对下面定义是错误的

int n=5

int a[n]

可以修改为

#define N 5

int a[N]

其中对二维及多位数组定义可以类推

int  a[x][y][z][]其中 x,y,z为数字。

参考资料

百度百科-C语言

数组的定义
数组就是指用于存储同一类型数据的集合,一个数组实际上就是一连串的变量,数组按照使用可以分为一维数组、二维数组、多维数组
数组定义的方式
数组定义的方式有四种形式,分别是:
(1)类型名[] 数组名;
(2)类型名[] 数组名 = { 初始值列表 };
(3)类型名[] 数组名 = new 类型名[ 数组大小 ];
(4)类型名[] 数组名 = new 类型名[ 数组大小 ] { 初始值列表 };
数据类型:指的是数组元素的数据类型,常见的有整形、浮点型、与字符型等
数组名:是用来统一这组相同数据类型元素的名称,其命名规则和变量的相同

分析如下:

1、格式<basetype>[] <name>;

2、其中basetype可以是任何变量类型

3、数组必须访问之前初始化

4、初始化有2种

5、int [] a={5,9,8};

6、int [] a=new int[3];

1、C#是微软公司发布的一种面向对象的、运行于NET Framework之上的高级程序设计语言。并定于在微软职业开发者论坛(PDC)上登台亮相。C#是微软公司研究员Anders Hejlsberg的最新成果。C#看起来与Java有着惊人的相似;它包括了诸如单一继承、接口、与Java几乎同样的语法和编译成中间代码再运行的过程。但是C#与Java有着明显的不同,它借鉴了Delphi的一个特点,与COM(组件对象模型)是直接集成的,而且它是微软公司 NET windows网络框架的主角。

2、C#是一种安全的、稳定的、简单的、优雅的,由C和C++衍生出来的面向对象的编程语言。它在继承C和C++强大功能的同时去掉了一些它们的复杂特性(例如没有宏以及不允许多重继承)。C#综合了VB简单的可视化 *** 作和C++的高运行效率,以其强大的 *** 作能力、优雅的语法风格、创新的语言特性和便捷的面向组件编程的支持成为NET开发的首选语言。

3、C#是面向对象的编程语言。它使得程序员可以快速地编写各种基于MICROSOFT NET平台的应用程序,MICROSOFT NET提供了一系列的工具和服务来最大程度地开发利用计算与通讯领域。

4、C#使得C++程序员可以高效的开发程序,且因可调用由 C/C++ 编写的本机原生函数,因此绝不损失C/C++原有的强大的功能。因为这种继承关系,C#与C/C++具有极大的相似性,熟悉类似语言的开发者可以很快的转向C#。

(资料来源:百度百科:c#)

C++中声明数组跟C语言中是一样的。
具体定义与使用方法可以参考如下程序段:
int a[5]; // 定义一个含5个元素的int类型的数组
double b[5]={32, 35, 08, 8, 5,3}; // 定义一个含5个元素的double类型的数组并初始化
char c[] ="abcd"; // 定义一个字符数组,并初始化
a[0] = c[0]; // 将字符数组的第一个字符所对应的ASCII码值赋值给数组a的第一个元素
printf("%lf", b[3]); // 输出数组b的第4个元素(数组下标从0开始)

Java中数组的定义与使用方法:
1、数组的定义
语法有两种:
type arrayName[];
type[] arrayName;
type 为Java中的任意数据类型,包括基本类型和组合类型,arrayName为数组名,必须是一个合法的标识符,[ ] 指明该变量是一个数组类型变量。
例如:
int demoArray[];
int[] demoArray;
这两种形式没有区别,使用效果完全一样,读者可根据自己的编程习惯选择。
注意:Java在定义数组时并不为数组元素分配内存,因此[ ]中无需指定数组元素的个数,即数组长度。而且对于如上定义的一个数组是不能访问它的任何元素的,开发者必须要为它分配内存空间,这时要用到运算符new,其格式如下:
arrayName=new type[arraySize];
其中,arraySize 为数组的长度,type 为数组的类型。如:
demoArray=new int[3];//为一个整型数组分配3个int 型整数所占据的内存空间。
2、数组的初始化
可以在声明数组的同时进行初始化(静态初始化),也可以在声明以后进行初始化(动态初始化)。例如:
// 静态初始化
// 静态初始化的同时就为数组元素分配空间并赋值
int intArray[] = {1,2,3,4};
String stringArray[] = {"zhidao", "baidu", "百度知道"};
// 动态初始化
float floatArray[] = new float[3];
floatArray[0] = 10f;
floatArray[1] = 13263f;
floatArray[2] = 100F;
3、数组的使用:
每个数组都有一个length属性来指明它的长度,例如 intArraylength 指明数组 intArray 的长度。
示例写一段代码,要求输入任意5个整数,输出它们的和。
import javautil;
public class Demo {
public static void main(String[] args){
int intArray[] = new int[5];
long total = 0;
int len = intArraylength;

// 给数组元素赋值
Systemoutprint("请输入" + len + "个整数,以空格为分隔:");
Scanner sc = new Scanner(Systemin);
for(int i=0; i<len; i++){
intArray[i] = scnextInt();
}

// 计算数组元素的和
for(int i=0; i<len; i++){
total += intArray[i];
}

Systemoutprintln("所有数组元素的和为:" + total);
}
}
运行结果:
请输入5个整数,以空格为分隔:10 20 15 25 50
所有数组元素的和为:120

type a[N];
这样数组中的元素就是type类型,比如
int a[10];整型数组
char a[10];字符数组
struct student{
int id;
int score;
}a[10];结构体数组

如果在参数表中,int
[],实际会被转换成int
。不信你可以试试这个程序:
#include
<stdioh>
void
f(int
b[10]){
printf("%d\n",sizeof(b));
}
void
main(){
int
a[10];
printf("%d\n",sizeof(a));
f(a);
}
至于为什么,就是为了防止传递数组,C认为有一个原始的,就 *** 作它好了,如果你觉得要另立副本,就自己新分配内存,或者用自己auto分配的内存,将内容复制过来。当然C++的今天,你可以用引用或者对象复制,来强行真正去传整个数组。
不能说简单类型传值,数组只传首地址指针就不好,现在很多语言还都传引用,但是真正需要副本时,要想办法,否则可能出现功能问题。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/10527412.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-09
下一篇 2023-05-09

发表评论

登录后才能评论

评论列表(0条)

保存