一维数组的使用

1:数组定义

int main()
{
int a[10]={};
for(int i=0;i<strlen(a);i++)//strlen计算长度
{
scanf("%s",&a[i]);
}
for(int i=0;i<strlen(a);i++)
printf("%c\n",a[i];
}

 注释:数组名代表数组首地址,第一个地址元素,是一个常量,不能够被赋值

数组表达式中可以包含常量和符号常量,即宏定义,不包含变量

数组元素的访问:

int main()
{
int a[5]={1,2,3};
printf("%d\n",a[1]);
}

 第一个元素的访问:a[0]

第n个元素的访问:a[n]

数组越界:当定义数组为int类型a[5]时,其元素的访问包含a[0],a[1],a[2],a[3],a[4];超出其限定范围例如:a[5]则视为越界

int main()
{
int a[3]={4,5,6,1);数组越界
a[3]=10;//数组越界
}

3:初始化以及数组大小的计算:

注释:部分初始化时,未初始化部分为0

数组地址印:%p

3.1:数组大小计算:

int main()
{
int a[5]={1,2,3,4,5};
printf("%d\n",sizeof(a));//数据类型*元素个数
}

斐波那契数列前15项并逆序输出:

int main(int argc, char const *argv[])
{
    int a[15] = {1, 1};
    for (int i = 2; i < 15; i++)
    {
        a[i] = a[i - 1] + a[i - 2];
    }
     for(int i=14;i>=0;i--)
     {
      printf("%d\t",a[i]);
    }
    for (int i = 0; i < 15; i++)
        printf("%d ", a[i]);
    printf("\n");
    return 0;
}
清零函数:

bzero()函数:

功能:将内存空间设置为0

参数: s: 要清空的空间首地址

n: 字节大小

返回值:无

m e m s e t ( ) 函数

功能:将指定内存空间内容设置为0

参数:s:指定内存首地址

c:要设置的数,一般为0

n:要设置的内存大小

int main()
{
int a[6]={1,2,4,5};
bzero(a,sizeof(a));//从首地址开始,sizeof(a)个字节清零
bzero(&a[2],sizeof(int)*4);//从a[2]开始,sizeof(int)*4个字节清零,即除去a[2]前已使用的字节
memset(a,0,sizeof(a));
for(int i=0;i<6;i++)//遍历
printf("%d\n",a[i]);
}


数组内存分配:

数组内存分配下图

取内容:a[4]的值相当于*(a+4)

5:字符数组的输入和输出
char a[5]={'a','d','r','f'};//sizeof(a)=5
char s[]="hello";//sizeof(s)=6  包含\0


char a[]={}//错误。定义时不赋值则不能省略元素个数

输入:char *gets(char *s);

输出:char *puts(char *s)

char a[10]={};
gets(a);//结尾加\0,不会接收到回车
puts(s);//在结尾自动加回车

char s[10]={};

s[10]="hello"; //错误数组越界给字符数组元素赋值不能字符

s="hello"; //错误s地址常量不能左值

strcpy(s,"string"); //正确

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值