首页 > 其他分享 >c的基本语法

c的基本语法

时间:2023-10-18 16:23:23浏览次数:25  
标签:基本 运算符 查看 代码 else 语法 点击 &&

逻辑运算

&&和||的短路

应当注意到,这两个运算符的两端会优先计算左端,如果左端结果将使结果确定,那么就不执行右端语句。

&&和||的计算优先度

&&的计算优先度更高,但二者的计算优先度均低于&和|。
但如果||和&&同时存在,且||的一端为&&运算结果,当出现||的另一端结果为1,将不执行&&两端的语句
例如,我们有

点击查看代码
int i=1,j=1,k=1;
printf("%d %d %d %d",i++ || j++ && k++,i,j,k);
输出结果为`1 2 1 1`

逻辑结构

if的用法

if的结构

点击查看代码
if()
{
}
应当注意,`()` 内为判断的条件,其中常用到 `!` `|` `&`三种运算符 并且当没有`{}`时,if条件成立仅执行if后第一个分号前的语句。 当存在 `{} ` 时,if条件成立将会执行`{}`内的全部内容。

else与else if

对于一个else而言,对应的是上一个if条件不成立以外的所有情况。
对于一个else if来说,对应的是上一个if条件不成立且满足else if()的括号内容。
应当注意,对于同一个if,可以存在多个else if,但else只能存在唯一一个。

if的级联

用以解决过度的缩进问题,即代码过于丑陋

点击查看代码
if() {

}else if(){

}else if(){

}else if(){

}
~~当然这是学校老师习惯的,也只是相对清爽。~~

个人更喜欢这样

点击查看代码
if()
{

}
else if()
{

}
else if()
{

}
不过代码还是在阅读舒适的情况下依据自己习惯来。

else if的悬空问题

出现多个if嵌套时,注意{}的使用以避免else 悬空。

条件表达式

常用于简化代码。但增加了代码的不可读性
exper1?expr2:expr3

点击查看代码
exper1?expr2:expr3
等价于
点击查看代码
if exper1
	exper2
else
	exper3
需要注意,条件运算符的运算优先级低于赋值运算符以外的所有运算符。因此在特定情况下应当加上`{}`

布尔值

C89输麻了没有布尔类型
C89只能够自己定义三个宏

点击查看代码
#define false 0
#define true 1

C99的头文件<stdbool.h>定义了bool,true和false三种类型

switch的使用

例子

点击查看代码
switch(x){
	case i:printf();break;//如果x是i的话
	case j:printf();break//如果是j的话
	default:printf();break;//剩余所有情况
}
优点:部分情况能使代码清爽。

缺点:case后只能是一个固定的值
如果没有break的话将会使被执行的第一个case后所有语句被执行

循环结构

for循环

自变量自增自减的循环

while循环

判定控制表达式在循环体执行之后的循环。

do while循环

用于判断控制表达式在循环体执行之后的循环。

循环应当关注边界性

标签:基本,运算符,查看,代码,else,语法,点击,&&
From: https://www.cnblogs.com/tangwk/p/17772656.html

相关文章

  • 基本技巧——分数规划 学习笔记
    基本技巧——分数规划学习笔记引入分数规划用来求一个分式的极值。具体的,给定\(n\)个元素,每个元素有属性\(a_i,b_i\),求一个集合\(P\in[1,n]\),最大/最小化比率:$$\dfrac{\sum_{i\inP}a_i}{\sum_{i\inP}b_i}$$求解二分法假设我们要求最大值(求最小值的方法和求最大值的方......
  • 3.2-DataFrame基本操作
    3.2-DataFrame基本操作  数据概要¶头部数据、尾部数据索引、列名查看数值查看统计摘要数据查询¶列数据行数据行列切片按值筛选按条件筛选(布尔值)其他¶转置排序 In [ ]:importpandasaspdimportnumpyasnp ......
  • ElasticSearch Java API 基本操作
    前言ElasticSearchJavaAPI是ES官方在8.x版本推出的新javaapi,也可以适用于7.17.x版本的es。本文主要参考了相关博文,自己手动编写了下相关操作代码,包括更新mappings等操作的java代码。代码示例已上传github。版本elasticsearch版本:7.17.9,修改/elasticsearch-7.17.9/config/......
  • Cocos Creator 2D/3D基础/ 第003节3D模型的基本概念
    3.1计算机如何制作一个3D模型 讲述这个问题之前,我们先来看下现实生活中我们要做一个模型,应该如何做呢?首先我们要把模型的形状给雕刻构建出来,现实生活中的物体都是由分子组成的连续的表面,计算机是离散的无法做到这点,所以计算机通过微分的方式,把一个曲面分成”多个平面”来模拟......
  • 【每日一记】ACL基本概念(匹配流量、路由条目、书写、规则.....)
    个人名片:......
  • 使用grep正则时无法匹配\d语法
    问题现象现象描述在使用grep的正则扩展功能,查找名称带数字的文件名时,发现查找结果一直不对(期望结果为能匹配到两个,但实际只能匹配1个)。环境说明操作问题:Centos7.6使用命令:find(版本4.5.11),grep(版本2.20)排查处理首先去验证下正则语法,测试发现正则表达式没问题。调试匹......
  • 基本的超市水果管理系统
    importjava.util.*;//定义水果类classFruit{privateStringname;privatedoubleprice;privateintstock;publicFruit(Stringname,doubleprice,intstock){this.name=name;this.price=price;this.stock=sto......
  • SQL语句的基本使用5-多值子查询
    这个作业属于哪个课程https://edu.cnblogs.com/campus/uzz这个作业要求在哪里https://edu.cnblogs.com/campus/uzz/cs3/homework/13036这个作业的目标SQL语句的基本使用5-多值子查询1.在student_info表中查找与“刘东阳”性别相同的所有学生的姓名、出生日期。......
  • Docker 基本管理
    Docker基本管理Docker概述Docker是一个开源的应用容器引擎,基于go语言开发并遵循了apache2.0协议开源。Docker是在Linux容器里运行应用的开源工具,是一种轻量级的“虚拟机”。Docker的容器技术可以在一台主机上轻松为任何应用创建一个轻量级的、可移植的、自给自足的容器。D......
  • Day4 链表的基本操作2
    Day4链表剩下的基本操作Lc24给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。//画个图,弄个新节点,然后按照顺序进行连接,最主要的是连的时候思路要清晰classSolution{public:ListNode*......