1.常量变量与数组
int main()
{
int n = 10;
int arr[n] = { 0 };
return 0;
}
其中n为变量,而arr[]数组中括号内必须是个常量,所以此代码会报错。
c99引入概念:变长数组。支持数组创建的时候,用变量指定大小,但这个数组不能初始化。
vs2019不支持c99变长数组,Linux等编译器是支持c99的。
2.转义字符
int main()
{
printf("%d\n",strlen("c:\test\121"));
return 0;
}
结果应为7,\t与\121都是由转义字符变换了原本的含义,分别算作一个字符
3.分支语句if else
在书写时注意代码风格,建议全部加上括号
int main()
{
int age = 20;
if (age >= 18)
{
printf("成年\n");
}
else
{
printf("未成年\n");
printf("不能谈恋爱\n");
}
return 0;
}
//判断一个数是否为奇数
int main()
{
int num = 0;
scanf("%d", &num);
if (num % 2 == 0)
{
printf("偶数\n");
}
else
{
printf("奇数\n");
}
return 0;
}
//输出1-100之间的奇数
int main()
{
int i = 1;
while (i <= 100)
{
if (i % 2 != 0)
{
printf("%d ", i);
}
i++;
}
return 0;
}
4.分支语句 switch
int main()
{
int day = 0;
scanf("%d", &day);
switch (day)
{
case 1:
printf("周一\n");
break;
case 2:
printf("周二\n");
break;
case 3:
printf("周三\n");
break;
case 4:
printf("周四\n");
break;
case 5:
printf("周五\n");
break;
case 6:
printf("周六\n");
break;
case 7:
printf("周七\n");
break;
default:
printf("输入错误\n");
break;
}
return 0;
}
case后跟的值不能是变量,必须是常量值。break也不是必须加的,要根据代码的实际情况合理插入break。最后一个break可加可不加,但是为了保持良好的代码习惯,也要加上,方便后续修改。
同时,输入错误的数值最好需要提示。使用default。
5.循环语句while
循环有:while、do while、for三种结构
int main()
{
int i = 1;
while (i <= 10)
{
if (i == 5)
break;
printf("%d", i);
i++;
}
return 0;
}
//在while中,break用于永久的终止循环,结果为1234
int main()
{
int i = 1;
while (i <= 10)
{
if (i == 5)
continue;
printf("%d", i);
i++;
}
return 0;
}
//死循环1234,continue的作用是跳过本次循环continue后的代码,直接去判断部分,看要不要进行下一次判断
getchar:read a character from a stream(getc,getwc),or get a character from stdin (get char,getwchar).
stdin:标准输入(键盘)
读取错误时,返回EOF(-1),
int main()
{
int ch = getchar();
printf("%c\n", ch);
//putchar(ch);
//输出一个字符
return 0;
}
end of file-文件结束标志
如果想要结束,ctrl+z可以让getchar读取到一个EOF,结束进程
//getchar
int main()
{
int ch = 0;
while ((ch = getchar()) != EOF)
{
putchar(ch);
}
return 0;
}
getchar 包含换行的动作,例如A\n,先读A,转至putchar ,再回来读\n,再到putchar中来换行,以此类推,可以看到输出结果。