1.对if continue与if break的解释:
#include<stdio.h>
int main(void)
{
int i;
for(i=0; i<10; i++)
{
if(i%2==1) continue;
printf("%2d",i);
}
}
if continue 结束的是本次循环,当i为奇数执行continue语句,不执行后面语句,比如i=1时,执行continue语句,不执行printf语句,然后跳转到i++,最终的输出结果为 0 2 4 6 8。
#include<stdio.h>
int main(void)
{
int i;
for(i=0; i<10; i++)
{
if(i%2==1) break;
printf("%2d",i);
}
}
而if break 语句结束的是整个循环,执行i=1满足If语句,然后执行break语句,跳出整个for循环,输出结果为 0。
2.scanf输入字符串与字符串初始化的区别
#include<stdio.h>
int main(void)
{
char a[10];
char b[10]="HELLO YOU";
scanf("%s",a);
printf("a[10]=%s\n",a);
printf("b[10]=%s",b);
return 0;
}
scanf输入字符串时,遇到空格或者回车会自动结束输入,但对于数组的初始化时,空格不会产生影响,另外此时字符串的长度为9字节(包含中间空格),占用空间10字节(结尾处有‘\0’,字符串的结束标志)。此外结束符阔以用a[5]=0;或者是a[5]='\0';进行定义。
3.将一个数组放入新数组的操作。将字符串数组中‘0’到‘9’的字符放入到新数组ch2[i]里面。
....
i=0;
for(k=0;ch1[k]!='\0';k++)
{
if(ch1[k]>='0'&&ch1[k]<='9')
{
ch2[i]=ch1[k];
i++;
}
}
ch2[i]='\0';
4.对于字符串数组加结束符'\0',是为了下面进行数组的遍历以及操作,比如:ch[k]='\0'; 是为了在用像这个for(k=0;ch[k]!='\0';k++)类似的操作,相当于一个判断结束的作用。
5.静态数组的说明。
一维字符数组,前五个元素赋初值,其余元素为0,这三种情况等同,整数0代表字符'\0',(但是与'0'不同,字符'0')。
static char s[6]={'H','A','P','P','Y'};
static char s[6]={'H','A','P','P','Y',0};
static char s[6]={'H','A','P','P','Y','\0'};
//与这个不同
static char s[6]={'H','A','P','P','Y','0'};
对于字符串数组,结束符为‘\0’。(一维字符数组不需要定义结束符,字符串数组需要定义)
static char s[6]={"HAPPY"};
static char s[6]="HAPPY";