ITPub博客

首页 > > > C语言初学者易犯的7大错,快来看看你有没有中招?

C语言初学者易犯的7大错,快来看看你有没有中招?

作者:jasonhsp 时间:2019-12-03 10:49:31 0 删除 编辑

有不少小萌新刚刚接触C语言,会遇到各种各样的问题,

不知道大家在码代码时,有没有遇到过那种错误漫天飞的情况。

C语言

然而有很多时候怎么找都找不到自己的代码错在哪里。

C语言

下面为大家整理了一些学习C语言的小萌新容易犯的错哦。

大家快来看看吧!

1. 忽略了“=”与“==”的区别

有许多小伙伴在编写代码时忽略了“=”与“==”的区别

会写出了如下的错误代码

if(a=1)

在C语言中,“=”是赋值的意思,如:a=1就是把3的值赋给了a。如果使用“==”意为比较两边值是否相等,需要注意的是在判断语句中我们常常使用到“==”。

C语言

类似的,“&”与“&&”也有不同,“&”作为取地址符,常用于赋值语句中,“&&”则是“与”的意思,常用于判断语句中。

当然也要注意“\”的用法,“\”是一个转义字符,如果想要输出\时,就需要输入“\\”。使用时,在“\”的后面加些其他的字符会摩擦出不一样的火花。

C语言

2.敲错字母

大家在敲代码时注意!!!

固定的函数名一定不要敲错,所以要记牢常用的函数名哦。

例:include,printf,scanf等。

打代码时手不抖,编译运行时啥事没有。

C语言

3.多加分号

int a=0;

for(int i=1;i<=100;i++);

{

a++;

}

printf("%d",a);

我们在敲代码时常常会遇到如上的情况,在for语句的括号后多加了一个分号,从而会导致for语句提前结束,最终输出的结果会是1,而不是想要的100。

所以此处应该引起注意:

在不需要分号的地方不要多加

在需要加时也千万不要遗漏哦

4.程序运行时进行编译

不知道大家有没有遇到过下面这种情况明明代码并没有错误却无法成功编译,并且出现了这样的错误提示

C语言

那么很可能是因为在有程序运行时进行了编译,这时候只需将运行的程序关闭就可以继续编译了

5.将数组个数误认为最大下标值

int a[3]={1,2,3};

for(int i=1;i<=3;i++)

{

printf("%d ",a[i]);

}

如果你想要这样输出数组所有元素的值,此时只会得出错误的结果。这是因为定义时a[3]表示a数组有3个元素,但下标是从0开始的,所以存在a[0],a[1],a[2],但a[3]却不存在哦

6.混淆字符与字符串

char c;

c="a";

字符常量是由一对单引号括起来的单个字符,字符串常量是由一对双引号括起来的字符序列,所以字符串“a”实际上包括两个字符'a'与 ' ',而把它赋给一个字符变量是行不通的

7.输入输出格式说明符使用不当

对于不同的数据类型输入输出时需要的输出控制符也有不同哦,大家注意要相互对应。

下面为大家整理了一些格式控制符的说明,大家可以多了解一下。

格式控制符说明:

%d

按十进制整型数据的实际长度输出

%ld

输出长整型数据

%md

m 为指定的输出字段的宽度。如果数据的位数小于 m,则左端补以空格,若大于 m,则按实际位数输出

%u

输出无符号整型(unsigned)。输出无符号整型时也可以用 %d,这时是将无符号转换成有符号数,然后输出。但编程的时候最好不要这么写,因为这样要进行一次转换,使 CPU 多做一次无用功

%c

用来输出一个字符

%f

用来输出实数,包括单精度和双精度,以小数形式输出。不指定字段宽度,由系统自动指定,整数部分全部输出,小数部分输出 6 位,超过 6 位的四舍五入

%.mf

输出实数时小数点后保留 m 位,注意 m 前面有个点

%o

以八进制整数形式输出

%s

用来输出字符串。用 %s 输出字符串同前面直接输出字符串是一样的。但是此时要先定义字符数组或字符指针存储或指向字符串

%x

以十六进制形式输出整数,这个很重要

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/615/viewspace-3132578/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-04-12

  • 博文量
    342
  • 访问量
    2720