Advertisement

C语言入门基础理论知识(三)

阅读量:

目录

数据操作

运算符

算数运算符

自反赋值

自加和自减

关系运算符

关系表达式

逻辑表达式


数据操作

运算符

用来表示运算的符号称为运算符操作符

算数运算符

+(加)、-(减)、*(乘)、/(除)、%(求余数或者取模)

%的运算规则:

对于表达式a%b来说,在计算a除以b后的余数值时,请注意所得结果的符号将与被除数保持一致。需要注意的是,在进行%运算时,必须确保参与操作的数据均为整型类型(如字符型),否则可能会导致错误的结果或程序异常运行。

优先级:+、-是同级为4级;*、/、%同级为3级

结合方向:左结合

复制代码
 #include<stdio.h>

    
 int main()
    
 {
    
 	int a=5,b=2;
    
 	printf("a+b=%d\na/b=%d\n",a+b,a/b);
    
 	return 0;
    
 }

输出结果:

自反赋值

+=(自反加赋值)、-=(自反减赋值)、*=(自反乘赋值)、/=(自反除赋值)、%=(自反模赋值)。

优先级:14级。

结合方向:右结合。

自加和自减

++(自加运算符)、--(自减运算符)

自加运算符和自减运算符有两种形式:

1. 前缀形式:++变量、--变量

例如:++i; --i

运算规则如下:将 i+1 或者 减一 的结果赋予到变元 i$ 中;其中表达式 $\left( \,\, ++ \,\, -- \,\, \right) 取该变元在被赋予后之数;其中 \,\, ++\, 变量相当于等于当前数加一;,, --$, 变量则相当于等于当前数减一。

2. 后缀形式:变量++、变量—

运算规则:把i+1或i-1赋值给变量i,而表达式(i++或i --)取变量i被赋值前的值。

注意:在运算符的一侧必须是变量,不能是常量或表达式。

优先级:自加、自减优先级是第二级,高于算术运算符。

结合方向:右结合

总的来说就是前缀形式先“增值”后引用,后缀形式就是先引用后“增值”。

关系运算符

<(小于)、<=(小于等于)、>(大于)、>=(大于等于)、==(等于)、!=(不等于)

运算符等级如下:<(小于)以及<=(小于等于)属于第6等级;>(大于)与>=(大于等于)也是第6等级;==(等于)以及!=(不相等)则属于第7等级

结合方向:左结合

关系表达式

用关系运算符将连个表达式连接起来所构成的表达式,称为关系表达式。

关系表达式的值仅包含两个数值0和1(除非当前值为0,则其余情况均为1),当该关系式成立时其取值为1否则取值为0

请注意,在对两个字符型数据进行比较时,默认采用的是基于ASCII值的方法

逻辑表达式

被称为由逻辑运算符联结两个表达式的算式称为逻辑表达式。其值仅取0和1。

&&(逻辑与)、||(逻辑或)、!(逻辑非)

运算符优先级:在编程语言中,逻辑非运算(!)具有较低的优先级(2),其执行顺序低于算术运算符(如加减乘除)。相比之下,在C++等语言中,默认情况下算术运算高于关系判断操作(如大于>、小于<等)。进一步地,在这些语言中,默认情况下还存在一种称为赋值操作的高级操作;需要注意的是,在默认设置下,默认情况下逻辑与操作员&&具有较高的优先级别(11),而逻辑或操作员||则为次高的级别(12)。值得注意的是,在这些高级编程语言中,默认情况下默认情况下这些高级操作员都位于比较低级别的位置上;具体来说,在C++等语言中,默认情况下它们都低于关系判断但高于赋值操作

结合方向:!(逻辑非)为右结合,&&和||为左结合

& &(逻辑与)的表达式计算过程:

先依次计算&&左侧的那个表达式的值;如果该表达式的值等于零,则跳过右侧运算;否则继续进行右侧运算

代码

代码

||(逻辑或)的表达式计算过程:

在求解左侧表达式的过程中,在左侧表达式的值非零时会省略右侧运算;而当左侧结果为零时则会继续进行右侧运算。

复制代码
  
    
 #include<stdio.h>
    
 int main()
    
 {
    
 	int a=1,b=2;
    
 	--a&&(b=a+3);
    
 	printf("a=%d,b=%d\n",a,b);
    
 	return 0;
    
 }

输出结果:

复制代码
 #include<stdio.h>

    
 int main()
    
 {
    
 	int a=1,b=2;
    
 	++a&&(b=a+3);
    
 	printf("a=%d,b=%d\n",a,b);
    
 	return 0;
    
 }

输出结果:

!(逻辑非)的表达式的计算过程:

假设A为表达式,如果A的值为非0,!A的值为0;如果A的值为0,!A的值为1 。

说明:

  • C语音表达式中, 当A不等于零时, 则可将其表示为A!*$。
    • C语音表达式中, 当A等于零时, 则其可被表示为两种形式: 即A= ==! *!*$。

数据的输入和输出

printf输入函数

printf用作将各表达式的计算结果按照特定的格式规则生成字符串内容,并将其发送至标准输入/输出设备。

格式为:printf("格式控制字符串",输出列表);

说明:

  • When multiple output lists are present, separate them with commas.
  • The formatting of strings requires enclosing them in double quotes ("") to include both format specifications and ordinary characters.
  • Format specifications must correspond one-to-one with the output list items.

scanf输出函数

按照标准输入输出设备, 按照既定的格式对字符串进行处理, 将数据字段分配至地址表中的对应位置, 记录于变量所指的内存单元中.

格式为:scanf("格式控制字符串",&地址表列)

说明:

  • 地址表由输入字段构成。每个输入字段通常由地址运算符&与变量名结合使用,并以逗号分隔。例如 & 变量名。
    • 字符串格式控制应置于英文双引号内。它既包含格式说明部分以及普通字符内容。

putchar字符输出函数

向标准输出设备上输出一个字符

格式:putchar(c);

说明:

  1. 函数参数c可以是字符变量、整型变量或转义字符。
  2. 该函数的作用是用来将参数c显示在设备上。
  3. put_char函数仅限于单个字符的输出,并每次只会显示一个单独的字符。

getchar字符输入函数

从标准输入设备上读入一个字符

格式:

char c;

c=getchar();

putchar();

说明:

  1. 该函数无参数,其返回值是由输入设备获取的字符。
  2. 键盘上的数据经由回车键完成处理。
  3. 该函数的字符可被赋值为一个字符变量或整型变量,并可未被赋值。

用getchar读入的字符直接用putchar输出

putchar(getchar());

全部评论 (0)

还没有任何评论哟~