(七)C语言的数组

一.一维数组

一般形式:<存储类型> <数据类型> <数组名> [<常量或表达式>]
内容含义
数组名代表起始地址,常量
数组长度可用sizeof()求得
数组使用只能逐个引用
数组初始化int a[ ]={1,2,3…}
#include<stdio.h>
int main()
{
  int a[6]={1,2,3,4,5,6},i;
  for(i=0;i<6;i++)
      printf("%p %d\n",&a[i],a[i]);
  printf("%p\n",a);
  printf("%d\n",sizeof(a));
  
  return 0;
}
地址1 1
地址2 2
.... .
24

二.二维数组

一般形式:数组名[常量表达式][常量表达式](行数可省略,列数不可省略
存储方式: 按行数优先排序的一维存储
#include<stdio.h>
int main()
{
  int a[2][3];
  int i,j;
  for (i=0;i<2;i++){
        for(j=0;j<3;j++)
          printf("%p ",&a[i][j]);
        putchar('\n');
  }
   printf("%p %d\n",a,sizeof(a));
   printf("%p %d\n",a[0],sizeof(a[0]));
   printf("%p %d\n",a[1],sizeof(a[1]));
  return 0;
}
二维数组初始化:int a[2][3] ={{1,6},{2}};可以忽略,列数不能省略。
#include<stdio.h>
int main()
{
  int a[2][3]={{1,6,9},{}};
  int i,j;
  for (i=0;i<2;i++){
        for(j=0;j<3;j++)
          printf("%d ",a[i][j]);
        putchar('\n');
  }
   
  return 0;
}
1 6 9
0 0 0
多维数组:int  c[1][2][3]

三.字符数组

内容含义
字符数组元素的数据类型为字符数组
初始化逐个赋值或用字符串常量char ch[5]={‘B’,‘o’,‘y’};
形式char c[ ] ={“Boy”} ,ch[3][4];以‘\0’结尾
#include<stdio.h>
int main()
{
  char arr1[]={'a','b','c'};
  char arr2[6]={'a','b','c'}; 
  int i,n;
  
  n= sizeof(arr1)/sizeof(char);
  for(i=0;i<n;i++)
     putchar(arr1[i]);
   putchar('\n');
   
   n= sizeof(arr2)/sizeof(char);
     for(i=0;i<n;i++)
        putchar(arr2[i]);
    putchar('\n');
  return 0;
}

输出:

abc
abc
#include<stdio.h>
int main()
{
  char arr1[]={'a','b','c'};
  char arr2[6]={'a','b','c'}; 
   
printf("arr1:%s %p\n",arr1,&arr1[2]);
printf("arr2:%s %p\n",arr2,arr2);
  return 0;
}
#include<stdio.h>
int main()
{
  char fruit[][20]={"banana","apple","strawmerry","watermelen"};
  int i,j,n,m;
  
  n=sizeof(fruit)/sizeof(fruit[0]);
  m=sizeof(fruit[0])/sizeof(char);
  
  for(i=0;i<n;i++){
     for(j=0;j<m;j++)
         putchar(fruit[i][j]);
    putchar('\n');
     }

  return 0;
}
#include<stdio.h>
int main()
{
  char fruit[][20]={"banana","apple","strawmerry","watermelen"};
  int i,n;
  
  n=sizeof(fruit)/sizeof(fruit[0]);
  
  
  for(i=0;i<n;i++){
     printf("%s\n",fruit[i]);
     }

  return 0;
}

练习题

1.冒泡排序
2.打印杨辉三角的前十行
3.有一个3x4的矩阵,要求输出其中值最大的元素的值,以及它的行号和列号;
4.输入一字符串,然后将其逆序输出

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值