C语言之数组与指针

数组与指针

数组

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;

 

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值