int a[100]={1, 2, 3}; 表示除前三个元素分别被初始化为1,2和3之外,后面97个全都默认为0。 //我定义的数组类型好像是char 。。。 ——郁闷,你就不能举一反三嘛。-_- char a[100]={ 'A ', 'B ', 'C '}; 表示除前三个分别被初始化为 'A ', 'B '和 'C ',其余97个都是0,即 '...
char a[100] = {'\0'};和char a[] = {'\0'}区别如下:第一个是 100个字节 全部初始化为\0 ,这个是先给出大小才初始化第二个是就一个字节 初始化为\0, 这个是赋值初始化 赋的值决定了大小 分配的内存地址空间也不一样,如下:...
如果是char a[100];这样就是对了的,其中a可以是任意合法字符,意思是定义个长度为100的char型数组,数组名为a
你的代码表示的意思是声明一个长度为n的,类型为char *的数组。这些数组的内容就是你声明这些char型字符的地址。下面为在VC6.0下编译的结果error C2078: too many initializers错误在于有过多的初始化内容,因为你声明的长度为为10,而你初始化中有11个内容,这样会造成数组越界,所以不能通过编译,而第二行因为100>...
char a[100] = {'0'}; 将a[0]初始化成'0',将后续元素值初始化,即初始化成0,即'这里有个杠0'。(杠不出来)如果是 char a[100] = {'杠0'}; // 大雾 则第一个元素以'杠0'初始化,后续元素依然值初始化。 而 memset(a, 0, sizeof(a)) 等价于 for (int i=0; i<sizeof(a); ++...
32res = i /j;33break;34default:35res =0;3637}3839chartmp[100] = {0};40sprintf(tmp,"%s%d;", s, res);//把运算式放入到tmp数组41strcat(b, tmp);//tmp是在循环内定义的,因此要在循环外再定义一个b42s = strtok(NULL,";");4344}4546strcpy(a, b);47printf("%s",a);48return0;4950...
相当于定义了10个char a[100];可以输入10个字符串到a[i](i=1,2,3,4,...);
单引号括起的是字符常量。'100' 是超界的字符常量。char a=100; 则为 ASCII 字符值 100, printf("%c",a); 输出 d char a='\100'; 则为 ASCII 字符值 八进制 0100,十进制 64,printf("%c",a); 输出
已有定义:char a【100】="xyz123",b【100】={'x','y','z','a'};,以下叙述中正确的是() A.数组a和b的长度相同 B.数组长度小于b数组长度 C.数组长度大于b数组长度 D.上述说法都不对 查看答案