c语言入门基础知识
目录
浮点数
运算符优先级
判断(if),嵌套的if -else
浮点数
在c语言中两个整数的运算只能是整数 结果是1
#include <stdio.h>
int main()
{
printf("%d",9/8);
}
AI写代码
在计算机内部,浮点数值如10.0 以一种特殊的方式表示非整数(包括分数与无理数)。相反地,int则用于表示输出的整形十进制数值。为了区分二者的不同特性,我们通常会使用double或float变量类型来定义相关数据。这样输入的数值会被系统自动识别为浮点型数据。需要注意的是,在不同的编程环境中,这些数据类型的符号可能会有所不同。例如:
| int(整数) | printf(“d”) | scanf(“%d”) |
|---|---|---|
| double(浮点数) | printf(“%f”) | scanf("%lf") |
运算符优先级
| 优先级 | 运算符 | 运算 | 结合关系 | 举例 |
|---|---|---|---|---|
| 1 | + | 单目不变 | 自右向左 | a*+b等于a*b |
| 1 | - | 单目取负 | 自右向左 | a*-b等于a乘-b |
| 2 | * | 乘 | 自左向右 | a*b |
| 2 | / | 除 | 自左向右 | a/b |
| 2 | % | 取余 | 自左向右 | a%b |
| 3 | + | 加 | 自左向右 | a+b |
| 3 | - | 减 | 自左向右 | a-b |
| 4 | = | 赋值 | 自右向左 | a=b |
在运算符中 单目运算符仅有一个操作数——-b表示对b进行取反操作;b则是这一运算符的操作数;而a+b则是双目运算符(涉及两个操作数)。因此 在a*-b中 -b具有较高的优先级 而赋值操作处于最低优先级。考虑到类似的情况 在编程语言中如果将赋值操作设定为最高优先级 则会导致在表达式如a = b + 5中先执行赋值操作(将b赋予a) 然后再进行加法运算(即 a + 5 这与预期的结果不符)。为了确保计算结果符合预期 在编程语言的设计中通常将赋值操作设定为其最低优先级。
两个变量 a 和 b 之间的交换操作需要使用一个空容器来进行操作步骤如下首先将其中一个变量 a 的当前数值存放在容器中随后将另一个变量 b 的数值复制到目标位置即完成了从 b 到 a 的数值转移接着再从容器中取出之前存储的 a 值并将其复制到目标位置即实现了从 a 到 b 的数值转移这样就完成了两个变量之间的数值互换操作
复合赋值 五个运算符+-*/%,可以和赋值运算符=结合起来形成复合运算符+= -= *= /= %=
a+=5等于a=a+5 a*=b+12等于a=a*(b+12)a/=12+6等于a=a/(12+6)注意两个运算符中不能有空格
++ 和 -- 是两个独特的运算符,在编程语言中属于一元操作符的一种形式。这些操作符必须作用于一个变量上,并且分别被称为递增或递减操作符。它们的作用就是将该变量的值分别增加1或者减少1。需要注意的是,在使用这些操作符时既可以将它们放置在变量的前面也可以放置在后面的位置上,并且两者的作用方式略有不同。
| 表达式 | 运算 | 表达式的值 |
|---|---|---|
| a++ | 给a加一 | a原来的值 |
| ++a | 给a加一 | a+1以后的值 |
| a-- | 给a减一 | a原来的值 |
| --a | 给a减一 | a-1以后的值 |
判断(if),嵌套的if -else
由‘if’关键字引导的一般结构
后接一个用于判断条件的基础逻辑表达式
随后是一组大括号内的多个语句
其中圆括号内的逻辑表达式涉及到了一系列的关系运算符:
| 运算符 | 意义 |
|---|---|
| == | 相等 |
| != | 不相等 |
| > | 大于 |
| >= | 大于等于 |
| < | 小于 |
| <= | 小于等于 |
关系运算符要是符合预期则为1否则为0)
所有的关系运算符在优先级上低于算术运算符但高于赋值运算 用于判断等于的情况
!=的优先级比其他的关系运算符低 而连续的关系运算是从左向右进行的
当条件成立时(结果不是0),程序会进入位于括号内的指令;否则则会跳转并执行下方未包含在括号内的指令。若该if后无分号,则会继续执行后续代码
if后也可以没有大括号,不过只有紧挨着if且只有这一句有效
else语句就是不满足if中圆括号逻辑表达式那就走另一条路如
#include <stido.h>
int main()
{
if(逻辑条件){
}else{怎么样}
return 0
}
AI写代码
其逻辑流程是:在判断条件不满足的情况下不会执行if大括号中的语句,则会执行else语句中的语句
在主函数内部会存在大量嵌套的大括号,在这些嵌套的大括号之间会涉及到变量的生命周期以及作用域的概念。具体来说,在一个大括号里声明的变量仅限于该作用域内使用(即该大括号内部),而外面还有一个全局变量可以在主函数之前声明(指整个主函数的有效范围)。如果在else或if条件语句内部声明变量则会被该条件块所限制,在这种情况下就需要重新声明这些局部变量到外部空间
#include <stido.h>
int main()
int a,b;
printf("请输入两个数中较大的那个数\n");
scanf("%d %d",&a,&b);
if(a>b)
{ int max=a
}else{ int max=b
}
printf("大的那个是%d/n",max);
return 0
}
AI写代码
如这里就是重新申明
