一个小白对C的理解历程
Journal 1st
第一次对照书本输入代码,有如孩童学习他的第一门语言,全凭感知,全凭对照。有犯错时的慌张,也有得到答复的雀跃。
当你第一次调试成功,你知道你踏入了一个门槛,你会欣喜如眼前这台计算机,说:“Hello world.”
#include<stdio.h>
int main()
{printf("Hello world.\n");
return 0;
}
单是这一个程序,就足以让小白明白很多:
int是整型定义,跟在其后的不论函数还是变量都被定义为整型。
分号不容缺少。不像人类语言的符号,C语言中的每一个字符都有其实意。
Journal 2nd
接触C语言一个月,小白用for语句敲出一个菱形
每个编译结果背后都是无数次调试与苦恼地试探
#include<stdio.h>
int main()
{
int a;
for(a=1;a<=100;a++)
{
if(a<=4)
printf(" ");
else if(a==5)
printf("*\n");
}
for(a=1;a<=100;a++)
{
if(a<=3)
printf(" ");
else if(a>=4&&a<=6)
printf("*");
else if(a==7)
printf("\n");
}
for(a=1;a<=100;a++)
{
if(a<=2)
printf(" ");
else if(a>=3&&a<=7)
printf("*");
else if(a==8)
printf("\n");
}
for(a=1;a<=100;a++)
{
if(a<=1)
printf(" ");
else if(a>=2&&a<=8)
printf("*");
else if(a==9)
printf("\n");
}
for(a=1;a<=100;a++)
{
if(a>=1&&a<=9)
printf("*");
else if(a==10)
printf("\n");
}
for(a=1;a<=100;a++)
{
if(a<=1)
printf(" ");
else if(a>=2&&a<=8)
printf("*");
else if(a==9)
printf("\n");
}
for(a=1;a<=100;a++)
{
if(a<=2)
printf(" ");
else if(a>=3&&a<=7)
printf("*");
else if(a==8)
printf("\n");
}
for(a=1;a<=100;a++)
{
if(a<=3)
printf(" ");
else if(a>=4&&a<=6)
printf("*");
else if(a==7)
printf("\n");
}
for(a=1;a<=100;a++)
{
if(a<=4)
printf(" ");
else if(a==5)
printf("*\n");
}
}
在不断的调试中,小白逐渐重视:
字符间的运算顺序、对循环嵌套的应用。
尽管编译结果达到了目的 但效率过低?
小白在此希望可以敲出效率更高的代码?
To be continue.