C语言支持数组数据结构,它可以存储一个固定大小的相同类型元素的顺序集合,数组是用来存储一系列相同类型的变量.
一. 声明数组
type arrayname [arraysize];
这个是一维数组,arraysize
必须是一个大于零的整数常量,type
可以是任意有效的 C数据类型,例如要声明一个类型为double的包含10个元素的数组balance,声明语句如下:
double balance[10];
二. 初始化数组
double balance[5]={1000.0, 2.0, 3.4, 7.0, 50.0};
大括号{ }之间的值得数目不能大于我们在数组声明时方括号[]中指定的元素数目.如果忽略了数组的大小,数组的大小则为初始化时元素的个数.
double balance[]={100.0, 2.0, 3.4, 7.0, 50.0};
三. 数组详解
- 多维数组:多维数组最简单的形式是二维数组
- 传递数组给函数:可以通过指定不带索引的数组名称来给函数传递一个指向数组的指针
- 从函数返回数组:允许从函数返回数组
- 通过指定不带索引的数组名称来生成一个指向数组中第一个元素的指针
指针与数组的区别
char *str ="hello";
cahr arrgs[]="hello";
字符数组
char *p=(char*)&arrgs == char *p=arrgs;
char *p=(char*)(&(arrgs[0])) == &arrgs == arrgs;
字符串指针
char *p=(char*)&str != str; str==str[0]=='H'
字符串数组的首地址可以用arrgs
, &arrgs
来表示并且它们相等.
但是 指针&str
和str
是不相同的,所以当遇到字符串指针的时候要注意处理方式.