栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言笔记(2)运算符、表达式、语法

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言笔记(2)运算符、表达式、语法

C语言笔记(2)

需要记忆的东西

运算符、表达式、语法


文章目录
  • C语言笔记(2)
  • 一、运算符
      • 1.分类
      • 2.内容
            • 1)算术运算符
            • 2)关系运算符
            • 3)逻辑运算符
            • 4)按位运算符
            • 5)赋值运算符
            • 6)数据运算符
            • 7)杂项运算符
  • 二、表达式
      • 1.分类
            • 1)算术表达式
            • 2)赋值表达式
            • 4)关系表达式
            • 5)逻辑表达式
  • 三、语法
      • 1.关键字
      • 2.语法结构
            • 1)if语句
            • 2)switch语句
            • 3)while循环
            • 4)do--while循环
            • 5)for循环
            • 6)enum
            • 7)goto
            • 8)return
            • 9)typedef
            • 10)struct
            • 11)union
  • 参考资料


一、运算符 1.分类
  • 算术运算符
  • 关系运算符
  • 逻辑运算符
  • 按位运算符
  • 赋值运算符
  • 数据运算符
  • 杂项运算符
2.内容 1)算术运算符
算术运算符描述
+加
–减
*乘
/除
%取模,整除后的余数
++自增
– –自减
2)关系运算符

关系运算符用于测试等值性

关系运算符描述
==等于
!=不等于
>大于
<小于
>=大于等于
<=小于等于
3)逻辑运算符

逻辑运算符用于逻辑测试,逻辑三元运算符比较特殊

逻辑运算符描述
&&逻辑与
I I逻辑或
!逻辑非
? :条件运算符/逻辑三元运算符

三目运算符也叫三元运算符,这个运算符的符号是由一个问号和一个冒号组成。
语法: 表达式1 ? 表达式2 : 表达式3;
语义: 先执行表达式1,如果表达式1的结果如果为真,那么执行表达式2,并且这个整体的运算式的结果是表达式2的结果;如果表达式1的结果如果为假,执行表达式3,运算式的结果是表达式3的结果。

int a,b,c;
 a=7;
 b=6;
 c=(a>b)?a:b;

等同于

if (a>b) c=a;
else c=b;

过于复杂的三目运算很难理解。

4)按位运算符

按位运算符做的事在现代代码中不常见到。它们会用各种方式改变构成字节和其他数据结构的位。在一些特定类型底层系统中,它们用起来会很顺手。

按位运算符描述
&按位与
I按位或
^按位异或
~按位取反
<<按位左移
>>按位右移
5)赋值运算符

赋值运算符的作用是将表达式赋给变量。

赋值运算符描述
=赋值(等)
+ =加后赋值(加等)
– =减后赋值(减等)
* =乘后赋值(乘等)
/ =除后赋值(除等)
% =取模后赋值(取模等)
<< =按位左移后赋值(左移等)
>> =按位右移后赋值(右移等)
& =按位与后赋值(与等)
^ =按位异或后赋值(异或等)
I =按位或后赋值(与等)
6)数据运算符

数据运算符是处理指针、成员访问,以及C语言的各种数据结构的元素。

数据运算符描述
sizeof ( )获取…的大小
[ ]数组下标
&…的地址
*…的值
– >结构体解引用
.结构体引用
7)杂项运算符

一些杂项符号由于各种原因无法归类,所以一并列在这里

杂项运算符描述
,逗号
( )圆括号
{ }花括号
:冒号
/ /单行注释开始
/ *多行注释开始
* /多行注释结束
二、表达式 1.分类 1)算术表达式
#include 

int main()
{
	int    A = 10;      // 定义变量A,赋值10
	int    B = 2;       // 定义变量B,赋值2

	printf("A的值是:%dn", A);
	printf("B的值是:%dn", B);

	printf("A+B的值是:%dn", A + B);//加
	printf("A-B的值是:%dn", A - B);//减
	printf("A*B的值是:%dn", A * B);//乘
	printf("A/B的值是:%dn", A / B);//除
	printf("A除B的余数是:%dn", A % B);//取余
	
	A++;  // 自增1
	printf("A自增后的值是:%dn", A);

	B--;  // 自减1
	printf("B自减后的值是:%dn", B);

	return 0;
}
2)赋值表达式

赋值运算符用于为变量指定值,在C语言中,包括两类赋值运算符,一类是简单赋值运算符,将值直接赋给变量,另一类是复合赋值运算符,变量参与运算同时用运算结果更新变量的值。

#include 

int main()
{
 
   int a = 1;
   int b = 2;
   int c = 3;
 
   printf("a = %dn", a);
   a = 5;
   printf("a = %dn", a);
   b = a;
   printf("b = %dn", b);
   c = 10 * a + b;
   printf("c = %dn", c);

  a += 1;
  printf("a = %dn", a);
  }
4)关系表达式
#include 

int main()
{
  int age = 0;  
   // 定义一个整数变量age,存放用户输入的年龄

  printf("请输入您的年龄:");// 提示用户输入
  scanf("%d",&age);         // 接受从键盘输入的年龄数据

  if (age >= 16)
  {
    // 如果用户已满16岁,执行这段代码
    printf("可以报名,祝您好运!n");
  }
  else
  {
    // 如果用户小于16岁,执行这段代码
    printf("不好意思哦,等您16岁之后再来吧!n");
  }
}
//c语言技术网(www.freecplus.net)
5)逻辑表达式
  if (吃了蛋糕 > 5)
  {
    if ( 吃了奶油蛋糕 > 2 )
    {
      if (吃了奶油巧克力蛋糕 == 1)
      {
          printf("胖十斤n");
        
      }
    }
  }
#include 

int main()
{
    int  cake = 0;        // 蛋糕
    int  cream_cake = 0;     // 奶油蛋糕
    int  cream_chocolate_cake = 0;         // 巧克力奶油蛋糕

    printf("请输入蛋糕、奶油蛋糕、巧克力奶油蛋糕数量:");
    scanf_s("%d %d %d", &cake, &cream_cake, &cream_chocolate_cake);

    if (cake > 5)    // 蛋糕数量大于5
    {
        if (cream_cake > 2)  // 吃了奶油蛋糕大于2
        {
            if (cream_chocolate_cake == 1)    // 吃了一个巧克力奶油蛋糕
            {
                printf("胖十斤n");
                return 0;

            }
        }
    }
    printf("没胖n");//虽然有点不符合实际哈哈
}
三、语法 1.关键字
关键字描述
auto给局部变量局部寿命
break退出复合语句
caseswitch 语句的一个分支
char数据类型:字符型
const创建一个不可修改的变量
continue继续从循环顶部运行代码
defaultswitch 语句的默认分支
do开始一个 do-while 循环
double数据类型:双精度浮点型
elseif 语句的 else 分支
enum定义一组int 常量
extern声明一个标识符是外部定义的
float数据类型:浮点型
for开始一个for 循环
goto跳到某个标签
ifif语向的开始
int数据类型:整型
long数据类型:长整型
register声明一个变量,令其存储在 CPJ 寄存器中
return从函数中返回
short数据类型:短整型
signed表示整数类型的有符号修饰符
sizeof确定数据的大小
static在作用域退出后依然保留变量值
struct将多个变量合并到一条记录中
switch开始一个switch 语句
typedef创建一个新类型
union开始一个union 语句
unsigned表示整数类型的无符号修饰符
void声明数据类型为空
volatile声明变量可能会在别处被改动
while开始一个while循环
2.语法结构

语法结构(syntax structure)是一系列符号的模式,用来组成C程序的代码格式,如if语句或者while循环这样的固定结构。

1)if语句

if语句是基本逻辑分支控制工具:

if(TEST){
		CODE;
	}
else if (TEST){
		CODE;
	}
else{
		CODE;
	}
2)switch语句

switch 语句和 if 语句类似,但它对简单的整型常量才有效

switch (OPERAND){
		
		case CONSTANT:
		CODE;
		break:
	default:
		CODE:
}
3)while循环

while 循环是最基本的循环:

while (TEST){
CODE;
}

你还可以使用 continue 来实现循环。我们暂时就叫它 while-continue 循环:

while (TEST){
if (OTHER_TEST){
continue;
}
CODE;
}

你还可以使用break 退出循环。我们称其为 while-break 循环:

while (TEST){
if (OTHER_TEST) {
break;
}
CODE;
}
4)do–while循环

do-while 循环是whi1。循环的遊转,它会先运行代码,然后再测试条件来看是不是需
要再次运行代码:

do{
CODE;
}while (TEST) ;

它里边也可以有continue 和break,用来控制其运行方式。

5)for循环

fo王 循环是一个可控的计数循环,它使用计数器来实现 (期望的)固定次数的迭代:

for (INIT; TEST; POST) {
CODE;
}
6)enum

enum 会创建一组整型常量

enum { CONST1, CONST2, CONST3) NAME;
7)goto

goto会跳到一个标签的位置,只在很少的情识下有用,如镨误检测和退出的时候:

if (ERROR TEST){
goto fail;
}
fail:
	CODE ;
8)return

函数是这样定义的:

TYPE NAME (ARG1, ARG2,...) {
CODE;
return VALUE;
}

这个也许不好记,那就来看看下面这个例子,然后你就知道 TYPE、NAME、ARG、 VAIUE
分别是什么了:

int name (arg1,arg2)
{
CODE;
return 0;
}
9)typedef

typedef 用来定义新类型:

typedef DEFINITION IDENTIFIER;

更具体的例子如下:

typedef unsigned char byte;

DEFINITION 对应的是 unsigned char, IDENTIFIER对应的是 byte。

10)struct

struct 是由多种数据类型打包在一起形成的一个概念,它在C语言中会大量使用:

struct NAME{
	ELEMENTS;
}[VARIABLE_NAME];

[VARIABLE_ NAME]是可选项,除了几个小场景之外,一般选择不使用它。它通常会像下面这样和typedef 组合使用:

typedef struct [SIRUCT_NAME]{
	ELEMENTS;
}IDENTIFIER;
11)union

union 会创建类似struct的东西,不过其中的元素会在内存中重叠

union NAME{
	ELEMENTS;
}[VARIABLE NAME] ;


参考资料
  • C语言-分支语句
  • 《“笨办法”学C语言》
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/889899.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号