我想先说说sizeof运算符和strlen()函数,sizeof它是以字节为单位给出数据的大小。而strlen函数是以字符串为单位给出字符串的长度。我吧这个弄清楚花了那么一点点时间。。。所以我觉得还是有必要讲一下。
#include<stdio.h>
#include<string.h>
int main()
{
char name[20];
printf("What's your name?\n");
scanf("%s",name);
printf("Your name has %d words,",strlen(name));
printf("and occupies %d memory cells.\n",sizeof(name));
return 0;
}
我认为还有一个重点就是,浮点型的输出。
首先,把小数记数法以指数记数法打印:
#include<stdio.h>
int main()
{
float a=0;
printf("input an number:");
scanf("%f",&a);
printf("The input is %e",a);
return 0;
}
然后,就是特定的输出形式。也就是如何使用精度说明符。我发现用精度说明符打印字符串和数字表达的意思是不一样的。
下面这个是打印数字的,发现一个很神奇的事(个人认为。。。),就是程序中第一行的输出,无论%后面有多少空格,打印出来的只有一个。还有我不知道%5.3d和%05.3d到底有什么区别~~
#include<stdio.h>
int main()
{
printf("**%d**% d**% d**\n",4,4,-4);
printf("**%5d**%5.3d**%05d**%05.3d\n",6,6,6,6);
return 0;
}
还有打印字符串的,下面这个程序的输出就很有意思,精度出现小数点的时候,之输出小数点后.5的5个字符。
#include<stdio.h>
#define BLURB "Authentic imitation!"
int main()
{
printf("/%2s/\n",BLURB);
printf("/%24s/\n",BLURB);
printf("/%24.5s/\n",BLURB);
printf("/%-24.5s/\n",BLURB);
return 0;
}
其实下面这个程序让我特别费解,他的意思是在scanf()中把*放在%和说明符的字母之间,他可以使函数跳过相应的项目。但是既然要跳过,直接不输入不就可以了么。。。
#include<stdio.h>
int main()
{
int n;
printf("Please enter three integers:\n");
scanf("%*d %*d %d",&n);
printf("The last integer was %d\n",n);
return 0;
}
好了,这一章的学习差不多就是这些,还有什么遗漏的也是不可避免的,表喷,所以我还是先匿了。。。