数组(C语言)

一. 一维数组

1.定义

   相同类型的多个数据得到一个有序的序列(线性表)。

#define N 30//宏常量

int a[N];//长度是定值

int n=30;
int c[n];//长度是变量,但是长度不能变

int *d;//可变数组,指针
d=new int[n];//C++用法,给d分配空间,可变,线性表中常用,写法d[0]、d[1].....


2.初始化

 1)赋值的数据个数小于等于N。

2)给出一部分数据赋值,剩下的数据会由0自动补齐。

3)当一个数组不初始化,则数据都是随机数。

int c[N]={1,2,3};//这种赋值方式正确

int c[N];
c[N]={1,2,3};//注意:这种赋值方式错误

int x=1;//初始化

int y;
y=1;//赋值,两种情况不同

3.数组的一些操作

赋值和输出

c[0]=1,c[1]=2,c[2]=3;
//或者利用循环赋值和输出
for(i=0;i<N;i++)
   scanf("%d",&c[i]);//scanf("%d",c+i);
for(i=0;i<N;i++)
    printf("%d",c[i]);//printf("%d",*(c+i));

4.数组做函数参数

数组名是数组的首地址,数组名是个指针变量

a就等价于&a[0];

//主程序中
int c[n];
f(c,n)//数组名做实参
//函数中
void f(int a[],int n);//形参带[],不用带长度

二.二维数组

1.定义

#define M 4
#define N 10//还是利用宏常量
int a[M][N];//二维数组是由M个长度为N的一维数组组成
a[i];//是长度为N的一维数组
a[i][j];//为二维数组中的一个元素

2.逻辑存储与物理存储

按行存储

a[0][0],a[0][1],...,[0][N-1],a[1][0],...,a[1][N-1],...,a[M][0],...,a[M-1][N-1];

3.二维数组的初始化

int a[][N]={1,2,3}//先填第一行,然后是二三行,若二三行没有,可降维,变成一维数组,只有第一个[]可不填
int a[][N]={{1},{2},{3}//分行输入,其余由0补齐

4.二维数组做函数参数

//主程序中
int c[M][N];
f(c,N)//同样也是二维数组名做实参
//函数中
void f(int a[][N],int n);//形参带[],只有第一个长度可以省略

三.字符串

1.表示字符串

“”的长度为0,但是空间为1,存在着结束符'\0';

双引号代表着串,而单引号代表着字符注意区分;

在C++中,提前声明string类型,输入和输出用cin、cout即可,s.length代表着字符串的长度,可以直接比大小。

在C中,相比于C++比较麻烦,用的比较少,利用strcmp( ,)<0来比较,输入跟输出的方式多样,注意的点多;长度用strlen来计算。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值