C语言初学者容易遇到的问题、编译器报错、运算符

scanf的使用

C语言初学者经常会因为C语言本身极其严谨的格式而出错,例如句末结束时的分号。
scanf的使用都是形如scanf("",)引号内的%d,%f,%c之类的字符一定要与引号外变量的数据类型相对,
还有初学者最容易出错的地方就是变量前面的取地址符“&”
这里提一下各个数据类型

int %d 整形 2或4字节
char %c 字符型 1字节
float %f 浮点型 4字节(6位小数)
double %lf 双精度型 8字节(15位小数)
long (int) %ld 长整型 4字节
short(int) %d 短整形 2字节

附:%nd中n为整数用来指定输出字段的宽度
%.nf中n为整数,用来指定小数点之后的位数(不要忘了’%‘后的’.’)
%o以八进制形式输出可用于输出时数据进制的转换
%x或%#x以十六进制输出

运算符

在学习C语言的过程中可能经常会出现一些不认识的运算符,这里提一下难以理解的运算符。

i++和++i

对于C语言初学者来说可能会有些难以理解,以下举实例来方便理解
C语言初学者容易遇到的问题、编译器报错、运算符到这里可能就有人有点懵了,为什么a=1,b=2
为了便于理解就用比较通俗的话来讲,就是
i++是先运算,后加1;++i是先加1,后运算。
所以上图中的i=1先做赋值运算,将值赋予a,即a=1
之后i再加1,所以最终输出i=2。
然后我们来看一下++i
C语言初学者容易遇到的问题、编译器报错、运算符

这里++i先加1为i=2,然后将值赋给a,所以a这里的值也是2,输出结果就会如上图所示。

逻辑运算符

假设a=1,b=0
C语言中值为非0为真,值为0为假,所以a为真,b为假。
&&逻辑与运算符可以将其视为数学中的^.一假则假,两个都为真才是真
||逻辑或运算符可以理解为数学中的ˇ,一真则真,两个都为假才是假

&& 逻辑与运算符 a&&b为假
丨丨 逻辑或运算符 丨丨ab为真
逻辑非运算符 !a为假,!b为真

关系运算符

a=1,b=2,c=1

== (等于)判断两边是否相等 a= =b为假,a==c为真
!= (不等于)检查是否相等 a!=b为真,a!=c为假
> 大于 a>b为假
< 小于 a<b为真
>= 大于等于 a>=b为假,a>=c为真
<= 小于等于 a<=b为真,a<=c为真

赋值运算符

= 最基本的赋值运算符,将右边的值赋给左边 c=a+b,把a+b的值赋给c
+= 加且赋值运算符 a+=1等价于a=a+1
-= 减且赋值运算符 a-=b等价于a=a-b
*= 乘且赋值运算符 a*=b等价于a=a*b
/= 除且赋值运算符 a/=b等价于a=a/b

三目运算符

表达式1?表达式2:表达式3
表达式1一般为判断语句,若表达式1为真则执行表达式2,表达式1为假,则执行表达式3;
上图
C语言初学者容易遇到的问题、编译器报错、运算符

C语言初学者容易遇到的问题、编译器报错、运算符