C语言之数组与指针
2018-03-20 17:29
239 查看
数组与指针
数组
1.一维数组
要想把数据放入内存,必须先要分配内存空间。放入4个整数,就得分配4个int类型的内存空间:定义数组 int a[length];(数组名叫a)这样的一组数据的集合称为数组(Array),它所包含的每一个数据叫做数组元素(Element),所包含的数据的个数称为数组长度(Length),例如int a[4];就定义了一个长度为4的整型数组,名字是a。
数组中的每个元素都有一个序号,这个序号从0开始,而不是从我们熟悉的1开始,称为下标(Index)。
初始化给数组赋值:方法一:
接下来我们就把第一行的4个整数放入数组:
a[0]=20;
a[1]=345;
a[2]=700;
a[3]=22;
这里的0、1、2、3就是数组下标,a[0]、a[1]、a[2]、a[3] 就是数组元素。
初始化方法二:在定义数组的同时赋值
int a[4] = {20, 345, 700, 22};
{ }中的值即为各元素的初值,各值之间用,间隔。
对数组赋初值需要注意以下几点:
1) 可以只给部分元素赋初值。当{ }中值的个数少于元素个数时,只给前面部分元素赋值。例如:
int a[10]={12, 19, 22 , 993, 344};
表示只给 a[0]~a[4] 5个元素赋值,而后面5个元素自动赋0值。
2) 只能给元素逐个赋值,不能给数组整体赋值。例如给十个元素全部赋1值,只能写为:
int a[10]={1, 1, 1, 1, 1, 1, 1, 1, 1, 1};
3)如给全部元素赋值,那么在数组定义时可以不给出数组的长度。例如:
int a[]={1,2,3,4,5};
等价于
int a[5]={1,2,3,4,5};
2.二维数组:
二维数组的定义 dataType arrayName[length1][length2];其中,dataType 为数据类型,arrayName为数组名,length1 为第一维下标的长度,length2 为第二维下标的长度。例如: int a[3][4];
另外对数组a[5][3],按行分段赋值可写为:
int a[5][3]={ {80,75,92}, {61,65,71},{59,63,70}, {85,87,90}, {76,77,85} };
按行连续赋值可写为:
int a[5][3]={80, 75, 92, 61, 65, 71, 59,63, 70, 85, 87, 90, 76, 77, 85};
这两种赋初值的结果是完全相同的。
3.字符数组
Char a[5]=”hello”指针
我们在使用c语言进行编写程序的时候,就一定会使用上指针,指针的操作是编写程序的一个点。1:指针是一个地址,指向的是个类型:
我们知道,c语言中的类型有int,char,bool(这个不常用),一般我们使用int,char就可以满足一般的类型需求的,如果对于变量的长度过大,就是用long ,float,double,关于各个类型使用的的长度问题,可以使用sizeof(int)或者sizeof(long)来查看各个类型,在系统中的小。
而指针就是一个8个字节(64系统)。2:指针指向的是地址,地址指向的是内容:我们需要一个变量,来存储地址,这个变量的值是地址,但是我们可以通过修改变量的值,来不断的改变地址,但是,我们如果需要改变该个地址的值的话,就需要,对地址的值进行修改,而不改变地址。Int a=1;Int * p=&a;
数组与指针
数组
1.一维数组
要想把数据放入内存,必须先要分配内存空间。放入4个整数,就得分配4个int类型的内存空间:定义数组 int a[length];(数组名叫a)这样的一组数据的集合称为数组(Array),它所包含的每一个数据叫做数组元素(Element),所包含的数据的个数称为数组长度(Length),例如int a[4];就定义了一个长度为4的整型数组,名字是a。
数组中的每个元素都有一个序号,这个序号从0开始,而不是从我们熟悉的1开始,称为下标(Index)。
初始化给数组赋值:方法一:
接下来我们就把第一行的4个整数放入数组:
a[0]=20;
a[1]=345;
a[2]=700;
a[3]=22;
这里的0、1、2、3就是数组下标,a[0]、a[1]、a[2]、a[3] 就是数组元素。
初始化方法二:在定义数组的同时赋值
int a[4] = {20, 345, 700, 22};
{ }中的值即为各元素的初值,各值之间用,间隔。
对数组赋初值需要注意以下几点:
1) 可以只给部分元素赋初值。当{ }中值的个数少于元素个数时,只给前面部分元素赋值。例如:
int a[10]={12, 19, 22 , 993, 344};
表示只给 a[0]~a[4] 5个元素赋值,而后面5个元素自动赋0值。
2) 只能给元素逐个赋值,不能给数组整体赋值。例如给十个元素全部赋1值,只能写为:
int a[10]={1, 1, 1, 1, 1, 1, 1, 1, 1, 1};
3)如给全部元素赋值,那么在数组定义时可以不给出数组的长度。例如:
int a[]={1,2,3,4,5};
等价于
int a[5]={1,2,3,4,5};
2.二维数组:
二维数组的定义 dataType arrayName[length1][length2];其中,dataType 为数据类型,arrayName为数组名,length1 为第一维下标的长度,length2 为第二维下标的长度。例如: int a[3][4];
另外对数组a[5][3],按行分段赋值可写为:
int a[5][3]={ {80,75,92}, {61,65,71},{59,63,70}, {85,87,90}, {76,77,85} };
按行连续赋值可写为:
int a[5][3]={80, 75, 92, 61, 65, 71, 59,63, 70, 85, 87, 90, 76, 77, 85};
这两种赋初值的结果是完全相同的。
3.字符数组
Char a[5]=”hello”指针
我们在使用c语言进行编写程序的时候,就一定会使用上指针,指针的操作是编写程序的一个点。1:指针是一个地址,指向的是个类型:
我们知道,c语言中的类型有int,char,bool(这个不常用),一般我们使用int,char就可以满足一般的类型需求的,如果对于变量的长度过大,就是用long ,float,double,关于各个类型使用的的长度问题,可以使用sizeof(int)或者sizeof(long)来查看各个类型,在系统中的小。
而指针就是一个8个字节(64系统)。2:指针指向的是地址,地址指向的是内容:我们需要一个变量,来存储地址,这个变量的值是地址,但是我们可以通过修改变量的值,来不断的改变地址,但是,我们如果需要改变该个地址的值的话,就需要,对地址的值进行修改,而不改变地址。Int a=1;Int * p=&a;
相关文章推荐
- 程序猿之---C语言细节30(数组和指针操作测试题,你能全答对吗??)
- 数组及指针-C语言
- C语言之数组专题:数组指针、指针数组、数组做函数参数退化、数组名、数组类型
- C语言 指针数组 多维数组
- C语言:指针数组、const指针+计算机系统:字节顺序
- C语言数组,指针,函数等问题
- C语言-指针、数组、结构体、分支、循环混合使用
- 水滴石穿C语言之指针、数组和函数(转载)
- c语言之指针数组理解二
- C语言 指针与一维数组,指针遍历一维数组的多种方法
- C语言中字符数组和字符串指针分析
- C语言中字符数组和字符串指针分析
- C语言中的数组指针与指针数组
- C语言中的指针数组
- 【C语言】12-指向一维数组元素的指针
- C语言学习笔记.指针4--数组指针和指向数组的指针变量(一)
- C语言学习之 数组,指针,字符串. (二)
- 转-C语言中使用指针与数组的区别
- C语言数组与指针
- 11、C语言中字符数组和指针字符串的指针变量