char c[10];//初始化
c[0]='I'; c[1]=' '; c[2]='l'; c[3]='o'; c[4]='v'; c[5]='e'; c[6]=' '; c[7]='y'; c[8]='o'; c[9]='u';
-------------------------------------------------------------------
char b[10]={"abcxsdfg"};
-------------------------------------------------------------------
char a[8]={'i','e','o','d','e','b','o','u'};
-------------------------------------------------------------------
char a[11];//输入输出
for(i=0;i<10;i++)→ for(i=0;i<10;i++)
a[i]=getchar();//一个一个赋值 ----- putchar(a[i]);//一个一个输出
-------------------------------------------------------------------
for(i=0;i<10;i++)→ for(i=0;i<10;i++)
scanf("%c",&a[i]);//一个一个赋值 ----- printf("%c",a[i]);//一个一个输出
-------------------------------------------------------------------
scanf("%s",a);//这个一下输入一串字符;空格,回车作为分隔符;
printf("%s",a);//这个一下输出一串字符;
-------------------------------------------------------------------
gets(a);//这个一下输入一串字符;只有回车作为分隔符;
puts(a);//只有用gets();输入才可以用puts();
1 列出数组所有元素值进行初始化,比如,下面的列出了4个元素所有值
int a[4] = {1,2,3,4};
2 初始化数量少于元素数量,比如下面的数组有4个元素,但只给了两个初始值
int a[4] = {1,2};
等价于 int a[4] = {1,2, 0, 0};
3 不指定数组维数初始化
int a[] = {1,2,3,4};
4 特殊情况, 字符数组初始化
char x[5] = "abcd";
等价于 char x[5] = {'a', 'b', 'c', 'd', '\0'};
1、直接逐个初始化字符数组:
字符数组的初始化,最容易理解的方式就是逐个字符赋给数组中各元素。
1
char str[10]={ 'I',' ','a','m',' ','h','a','p','p','y'};
注意:如果花括号中提供的字符个数大于数组长度,则按语法错误处理;若小于数组长度,则只将这些字符数组中前面那些元素,其余的元素自动定为空字符(即'\0' )。
2、用字符串常量来初始化字符数组:
在c语言中,将字符串作为字符数组来处理。因此可以使用字符串来初始化字符数组。
1
char str[]={"I am happy"};
也可以省略花括号。
1
char str[]="I am happy";
但是,上述这种字符数组的整体赋值只能在字符数组初始化时使用,不能用于字符数组的赋值,字符数组的赋值只能对其元素一一赋值,下面的赋值方法是错误的。
1
2
char str[];
str="I am happy";//错误,字符数组的赋值只能按元素一一赋值
可以的:
#include<string>
#include<iostream>
using namespace std;
void main()
{ string str[3]={"a","123","e1ghi"};
int i;
for ( i=0;i<3;i++ ) cout<<str[i]<<endl;
}
字符数组的初始化与数值型数组初始化没有本质区别。但它除了可以逐个给数组元素赋予字符外,也可以直接用字符串对其初始化。
(1)用字符常量逐个初始化数组。例如:
char a[8]={'i','l','o','v','e','y','o','u'};
用逐个初始化的方法与数值型数组初始化本质上是一样的,同样也可以进行完全赋初值及不完全赋初值,但是不完全赋值时没有赋值的元素被赋为空格。
当对全体元素赋初值时也可以省去长度说明。例如:
char c[ ]={'c',' ','p','r','o','g','r','a','m'};
这时C数组的长度自动定为9。
(2)字符串常量初始化数组。例如:
char c[ ]={'c',' ','p','r','o','g','r','a','m'};
可写为:
char c[ ]={"C program"};
或去掉{}写为:
char c[ ]="C program";
空格算字符的,不过你写的是空字符。。既然空格算字符了(空字符也占一个空间) 那么有十二个字母就越界了。。
这样的初始化是合法的 不过一定不要超过设置的最大长度。。。
如果不等于而是小于 那么剩下的就是随机的。。
如果首先不设置限制的话,那么系统会自动统计个数。
就是这样也可以char str2[]={'a',' ','b','c','d','e','f','g','h','i','j','k','l'};
楼上说的结束符不加也是可以的,只是为了输出等用途的时候,可以不用考虑数组长度
声明:本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
蜀ICP备2020033479号-4 Copyright © 2016 学习鸟. 页面生成时间:3.631秒