数组与指针:
一维数组与指针:
定义一个一维数组时,系统会在内存中为该数组分配一个存储空间,数组名称为该数组在内存的首地址。
定义一个指针变量,将数组首地址传给指针变量,该指针指向了这个一维数组。
形如:
int *p,a[10];
p=a;
a是数组名,也就是数组的首地址。
或者
int *p,a[10];
p=&a[0];
将数组a中的首个元素的地址赋给指针变量p。
在C语言中可以用a+n来表示数组元素的地址,*(a+n)表示数组元素。
使用指针指向一维数组:
通过指针引用数组元素:
二维数组与指针:
二维数组的形式形如:
&a[0][0]既可以看作数组0行0列的首地址,也可以看作二维数组的首地址。
&a[m][n]就是第m行n列元素的地址。a[0]+n表示第0行第n个元素的地址。
习题:给定5各班的语文数学英语平均成绩,将这5各班各科平均成绩保存到一个二维数组中并输出。代码如下:
习题:某校班级有3 * 3个座位,输出位置最好的一行座位号。代码如下:
字符串与指针:
通过字符指针指向一个字符串,不需要定义数组,通过字符指针变量输出一个字符串。
习题:输出“grasp now,don't mourn the past,not to sorrow in the future."代码如下:
利用指针实现字符串复制:
形如:
习题:输出”很多事先天注定,那是命;但你决定怎样去面对,那是运。“代码如下:
指针数组来实现字符串数组:
字符数组为一个一维数组,字符串数组是以字符串作为数组元素的数组。
指针数组就是一个数组,其元素均为指针类型数组。指针数组中的每一个元素都相当与一个指针变量。
定义如下:
类型名 *数组名[数组长度]
习题:小学六年级英语期末考试,有一题是根据汉语填写英语,汉语题目是语文,数学,英语,化学,生物,物理,
请用字符串数组输出填写的英文。代码如下: