上海龙凤419

C说话

C说话入门罕见毛病

时候:2024-11-03 15:31:18 C说话 我要投稿
  • 相干保举

C说话入门罕见毛病

  C说话的矫捷给法式的调试带来了很多方便,特别对初学C说话的人来讲,常常会出一些连本身都不晓得错在那里的毛病,上面清算了一些罕见毛病,一路来看看吧!

C说话入门罕见毛病

  1.誊写标识符时,疏忽了巨细写字母的区分。

  main()

  {

  int a=5;

  printf("%d",A);

  }

  编译法式把a和A以为是两个差别的变量名,而显现犯错信息。C以为大写字母和小写字母是两个差别的字符。习气上,标记常量名用大写,变量名用小写表现,以增添可读性。

  2.疏忽了变量的范例,停止了不正当的运算。

  main()

  {

  float a,b;

  printf("%d",a%b);

  }

  %是求余运算,获得a/b的整余数。整型变量a和b能够停止求余运算,而实型变量则不许可停止“求余”运算。

  3.将字符常量与字符串常量混合。

  char c;

  c="a";

  在这里就混合了字符常量与字符串常量,字符常量是由一对单引号括起来的单个字符,字符串常量是一对双引号括起来的字符序列。C划定以“”作字符串竣事标记,它是由体系主动加上的,以是字符串“a”现实上包罗两个字符:‘a'和‘',而把它赋给一个字符变量是不行的。

  4.疏忽了“=”与“==”的区分。

  在很多高等说话中,用“=”标记作为干系运算符“即是”。如在BASIC法式中能够写

  if (a=3) then …

  但C说话中,“=”是赋值运算符,“==”是干系运算符。如:

  if (a==3) a=b;

  前者是停止比拟,a是不是和3相称,后者表现若是a和3相称,把b值赋给a。因为习气题目,初学者常常会犯如许的毛病。

  5.健忘加分号。

  分号是C语句中不可贫乏的一局部,语句开端必须有分号。

  a=1

  b=2

  编译时,编译法式在“a=1”前面没发明分号,就把下一行“b=2”也作为上一行语句的一局部,这就会呈现语法毛病。改错时,偶然在被指出有错的一行中未发明毛病,就须要看一下上一行是不是遗漏了分号。

  { z=x+y;

  t=z/100;

  printf("%f",t);

  }

  对复合语句来讲,最初一个语句中最初的分号不能疏忽不写(这是和PASCAL差别的)。

  6.多加分号。

  对一个复合语句,如:

  { z=x+y;

  t=z/100;

  printf("%f",t);

  };

  复合语句的花括号后不应再加分号,不然将会弄巧成拙。

  又如:

  if (a%3==0);

  I++;

  本是若是3整除a,则I加1。但因为if (a%3==0)后多加了分号,则if语句到此竣事,法式将履行I++语句,不管3是不是整除a,I都将主动加1。

  再如:

  for (I=0;I<5;I++);

  {scanf("%d",&x);

  printf("%d",x);}

  本意是前后输出5个数,每输出一个数后再将它输出。因为for()后多加了一个分号,使轮回体变为空语句,此时只能输出一个数并输出它。

  7.输出变量时健忘加地点运算符“&”。

  int a,b;

  scanf("%d%d",a,b);

  这是不正当的。Scanf函数的感化是:根据a、b在内存的地点将a、b的值存出来。“&a”指a在内存中的地点。

  8.输出数据的体例与请求不符。

  ①scanf("%d%d",&a,&b);

  输出时,不能用逗号作两个数据间的分开符,如上面输出不正当:

  3,4


【C说话入门罕见毛病】相干文章:

C说话入门常识07-20

c说话入门典范法式08-01

C说话入门甚么是编程说话10-12

C说话常量入门进修06-05

C说话自学入门技能09-17

C说话入门常识:常量08-31

入门首选C说话的缘由07-25

c说话入门根本常识07-18

C说话入门的根基进修方式09-29

c++ c说话while 轮回语句入门根本教程06-24