关于C语言中数组的学习

一.数组的定义

1.一维数组的定义:

#include<stdio.h>
int main(void){
   //  一般是:int a[数组的大小]; 如:
   int a[10];
   char b[10];
   for(int i=0;i<10;i++){
   scanf("%d",&a[i]);
   }
   //或者:
   int a[10]={1,2,3,4,5,6,7,8,9,10};

同时如果你要知道整数型数组的大小:
可以用以下指令:

a=sizeof(a)/sizeof(a[0]);

注意:
在数组中第一个元素为:
a[0];
最后一个元素为:
a[数组的大小-1];

2.二维数组的定义:

如:

int a[2][3]={1,2,3,4,5,6};
//这里的2指明了该数组有2行,而3说明了每行有3个元素

不过要注意:
如果你想要访问第二行第一个元素,代码应该是:
a[1][0],而不是a[2][1]。

二.数组的注意事项:

不用指针建立动态数组(可能会在某些编译器无法实现)
如:

 int n;
 scanf("%d",&n);
 int a[n];
 for(int i=0;i<n;i++){
    scanf("%d",&a[i]);
    }
//假设n>3,输出a中的第二个元素
    printf("%d",a[1]); 

不过要注意对于n的声明应该在a[n]的前面,而不能

int a[n],n;

同时最好输入n的值在int a[n]前;

建立一个字符串型的动态数组:

#include<stdio.h>
int main(void){
	int n;
	scanf("%d",&n);//出错
	char a[n];
	for(int i=0;i<n;i++)
	{
		scanf("%c",&a[i]);
	}

上面的代码中如果是整数数组就没错,但是字符串就可能会出错,问题在于scanf("%d",&n),如果你输入n后按回车,然后在输入字母,你就会发现输出的会出错,这是在于回车也是字符串,它会认为你已经输入一个字符串所以你可以这样:

scanf("%d\n",&n)

动态二维数组:

#include<stdio.h>
int main(void){
	int n,m;
	scanf("%d%d",&n,&m);
     int a[n][m];//保证n和m在int a[n][m]前已经输入,不然程序是不能正常运行的
	for(int i=0;i<n;i++){
		for(int o=0;o<m;o++){
			scanf("%d",&a[i][o]);
		} 
	}

可能会有错误!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值