目录
声明
为让c/c++的朋友都看懂,本文将采取c语言为大家讲解
一.整体赋值为0、“”或‘ ’
为什么把0、“”或‘ ’这三种情况单独调出来呢,因为如果将数组定义为全局,则编译器会将此数组自动初始化为0(int、long、long long)、“”(string)或‘ ’(char),如下:
#include<stdio.h>
#include<string.h>
int a[10];
char b[10];
int main(){
printf("a:");
for(int i=0;i<10;i++)printf("%d",a[i]);
printf(";\nb:");
for(int i=0;i<10;i++)printf("%c",b[i]);
printf(";\n");
}
运行结果:
string类型的例子(string仅存在于c++中,下为c++代码):
#include<iostream>
using namespace std;
string a[10];
int main(){
cout<<"a:";
for(int i=0;i<10;i++)cout<<a[i];
cout<<";"<<endl;
}
如果要赋值为这三种特殊情况,像下面这样写也是没问题的:
int a[10]={0};
string b[10]={""};
char c[10]={' '};
但是如果不是这三种特殊情况的话,就会出现如下现象:
#include<stdio.h>
int a[10]={1};
int main(){
printf("a:");
for(int i=0;i<10;i++)printf("%d",a[i]);
printf(";\n");
}
如你所见,这样的操作只对a[0]赋值为1,那这种情况下就需要运用到下文所说的方法了
二.整体赋值为其他
由于数组赋值方式相同,下文仅以int类型数组的赋值为例来讲解
1.利用for循环赋值
这应该是大家用的最多的一种方式了,遍历数组的每一格进行赋值
#include<stdio.h>
int a[10];
int main(){
printf("a:");
for(int i=0;i<10;i++){
a[i]=1;
printf("%d",a[i]);
}
printf("\n");
}
2.逐个赋值
这种方法仅适合较小的数组,有成千上万个格子的数组用这种方法好像有点费肝……
仍然是在定义的时候进行初始化,数组的每个值之间用“,”隔开:
#include<stdio.h>
int a[10]={1,1,1,1,1,1,1,1,1,1};
int main(){
printf("a:");
for(int i=0;i<10;i++)printf("%d",a[i]);
printf("\n");
}
本次的内容到此处便结束了, 如对本文有疑问欢迎评论区留言或私信!