C语言解惑
- 中文字符以假乱真时,出现“0Xa”的标识符在报错编译中
- 象形文字扰乱视听 (printf 中可用大写字符代替小写,提高程序可读性)
- 注释使用时出现错误(/——/成对使用或用“//”)
- 一行只能书写一条预编译语句
- scanf 要“&”不要“\n” (scanf ("%dlf\n",&a); , 带“\n”时必须随意输入两次,第一次才能运行正确)
- printf 语句中,“\n ”之前和之后的空格含义不同,前面无影响,后面空格则会影响下一 行输出语句 (printf ("%d\n ",a); 双引号之间的空格是输出信息的构成部份)
- 输入语句中的“”只表示输入项在读入数据后不赋值给相应的变量,但是一组输入"%",只是修饰舍掉的位数,%1d和%d存储数据不同。最后一个%d 与“之间不能留有空格,与上述"\n"是同样的道理,scanf 语句输入格式中双引号之间空格很重要,需要重视,否则输出错误 (scanf("%2d%*3d%d%c",&a,&b,&c); 输入不同时输出结果也不同,例如 : 输入 123456789 ,a=12,b=6789,c= 应为换行符,无法显示
输入 123 456 789,a=12,b=456,c= 空格
输入 1 2 3456 789 ,a=1,b=3456,c= 空格
输入1 23456 789,a=1,b=56,c= 空格
(被舍弃的字符串是以空格区分的,如果数量不够,也只有舍弃到空格为止。如果 数量足够,则取舍到规定数量,将剩下的赋给变量。在运行到空格时,编译系统认为这个字符串已经结束) - 对于十进制数值,控制输入输出格式只能为小写字符,大写无效,对于字符而言,大小写均可,对于字符串也是能用%s,不能用%S,但是不同的编译环境也有区别,输入输出格式要和声明时一致,%g是输出实数的,对整数无效
*字符数组和字符的用法区别,字符输入时可用scanf , 而字符串不可,可用gets函数
char st [32];
gets (st);
printf ("%s",st);
字符数组和字符的用法区别例子
# include <stdio.h>
void main ()
{ char st[]="when you go home ?"
printf ("%s\n",st); //when you go home?
printf ("st"); //when you go home ?
printf ("\n");
printf ("%c\n",st[5]); //y
printf ("%s\n",&st[5]); //you go home ?
printf ("&st[5]"); //you go home ?
}
- 字符数组和数值数组数组不同,字符串可用printf 直接输出,但数值数组只能一一输出
# include <stdio.h>
void main ()
{
int a[3];
printf (" 请输入数组内容:");
for (i=0;i<3;i++)
scanf ("%d",&a[i]);
printf ("");
for (i=0;i<3;i++)
printf ("%d",a[i]);
printf ("\n");
}