引用:
int a,b,c,d,......
int sum
=>
定义一类或一组变量
数组
1.数组是什么?
数组是一组具有相同类型的数据(变量)的集合
C语言中数组:
一维数组
二维数组
三维数组
...
其实,C语言中只有一维数组
2,一维数组
2.1 定义格式
类型说明符 数组名[整型表达式] {={初始化列表}};
{}: 可要可不要
"类型说明符":指定数组元素的类型,任意C语言合法的类型都可以
“数组名”:对象的名字,命名要符合C语言标识符的规定
“整型表达式” :指定数组中元素的个数,一般为常量表达式
eg:
#define N 3
int a[10];//定义了一个数组,数组名a,里面有10个int型元素
typeof(a) =>一个具有10个int元素的数组类型 int[10]
char b[10];
typeof(b) => 一个具有10个char元素的数组类型 char[10]
int c;//在程序运行的时候,为c分配4个字节的空间
在程序运行的时候,为a分配多大的空间?
10个int =》40个字节
sizeof(a) =>40
2.2 一维数组在内存中的存放
在连续的地址空间中,从低地址到高地址依次存放数组中的每个元素。
意思:第二个元素只能紧跟着第一个元素后面存放
int a[10];
0x0001 -> 第一个元素
0x0005 -> 第二个元素
....
2.3一维数组元素的引用
int a[10];
引用方式:
数组名[下标];//C语言的下标是从0开始
a[0] 数组中第一个元素
...
a[9]
引用数组元素a[i] 和引用普通变量是一样的,都有左值和右值,还可以取地址
eg:
int b;
b = 1024;
a[0] = 1024;//表示数组元素a[0]的地址
b = a[0]; //表示数组元素a[0]的值
练习:
定义一个整型数组,数组中有10个元素。从键盘上输入值来给元素赋值
然后把整个数组输出
int a[10];
for(i = 0; i<10;i++)
{
scanf("%d",&a[i]);
}
printf("%d ",a);
2.4 一维数组的初始化
初值是存在一对花括号中
(1)数组元素全部初始化
int a[10] = {1,2,3,4,5,6,7,8,9,10};
eg:
int a[10];
a[10] = {1,2,3,4,5,6,7,8,9,10};//error
(2)可以只对部分元素初始化,后面的元素自动初始化为0
int a[10] = {1,2,3};
把整个数组初始化为0
int a[10] = {0};
(3)如果对全部元素初始化,那么在定义数组的时候,可以不指定数组的长度
why?
int a[] = {1,2,3};
☆☆
char s[] = {'a','b','c'};
=>数组s里面有3个元素
printf("%s",s);
char s1[10] = {'a','b','c'};
printf("%s",s1);
“字符串长度” :就是从一个起始地址的内容开始找,找到第一个