C语言基础学习总结-程序员宅基地

技术标签: 学习  c语言  

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


C语言基础学习总结`

C语言基础学习总结`

C语言是一种通用的计算机编程语言,由美国贝尔实验室的Dennis Ritchie在1972年发明。C语言被广泛应用于系统软件、嵌入式系统、游戏开发等领域。

C语言的特点包括简洁、高效、可移植性好等。学习C语言的基础知识对于理解计算机底层、编写高效的代码以及深入理解其他编程语言都非常重要。


`

一、标识符与关键字

1.1标识符

示例:C语言的基本字符可以分为4类。
1、英文字母:大小写26个,共52个;
2、阿拉伯数字:0~9共10个;
3、下划线与分号;
4、特殊符号:
运算符:

1. 算术运算符:+(加)、-(减)、*(乘)、/(除)、%(取余)
2. 关系运算符:==(等于)、!=(不等于)、>(大于)、<(小于)、>=(大于等于)、<=(小于等于)
3. 逻辑运算符:&&(逻辑与)、||(逻辑或)、!(逻辑非)
4. 位运算符:&(按位与)、|(按位或)、^(按位异或)、~(按位取反)、<<(左移)、>>(右移)
5. 赋值运算符:=(赋值)、+=(加赋值)、-=(减赋值)、*=(乘赋值)、/=(除赋值)、%=(取余赋值)、&=(按位与赋值)、|=(按位或赋值)、^=(按位异或赋值)、<<=(左移赋值)、>>=(右移赋值)
6. 自增自减运算符:++(自增)、--(自减)
7. 条件运算符:?(条件判断)
8. sizeof运算符:用于获取变量或类型的字节大小
9. 强制类型转换运算符:(type)(将值强制转换为指定类型)
10. 成员访问运算符:.(点号,用于访问结构体或联合体的成员)、->(箭头,用于访问指向结构体或联合体的指针的成员)
11. 下标运算符:[](用于访问数组元素或指针指向的内存)
12. 指针运算符:&(取地址)、*(取值)
13. 逗号运算符:,(用于多个表达式的连续求值)

分隔符:

    1. 空格符:用于分隔单词、函数参数等。
    2. 制表符:用于缩进,分隔单词、函数参数等。
    3. 换行符:用于换行。
    4. 逗号:用于分隔参数、数组元素等。
    5. 分号:用于结束语句、结构体、枚举等的定义。
    6. 冒号:用于标记标签、switch语句中的case等。
    7. 句号:用于标记结构体、枚举中的成员。
    8. 小括号、中括号、大括号:用于分隔表达式、语句块等。
    9. 引号、双引号:用于分隔字符串、字符常量。
    10. 运算符(加号、减号、乘号、除号等):用于分隔表达式。

1.2关键字

C语言的关键字是指在编程中具有特殊意义的单词,不能用作变量名或函数名。C语言的关键字有以下32个:

auto、break、case、char、const、continue、default、do、double、else、enum、extern、float、for、goto、if、int、long、register、return、short、signed、sizeof、static、struct、switch、typedef、union、unsigned、void、volatile、while

1.2.1数据类型关键字
C语言中的数据类型关键字包括:
A:基本数据类型:

  1. int:表示整数类型,用于定义整型变量。
  2. float:表示单精度浮点数类型,用于定义浮点型变量。
  3. double:表示双精度浮点数类型,用于定义双精度浮点型变量。
  4. char:表示字符类型,用于定义字符变量。
  5. void:表示无类型,一般用于函数返回类型或函数参数类型。
    B:类型修饰关键字:
  6. short:表示短整型,用于定义短整型变量。
  7. long:表示长整型,用于定义长整型变量。
  8. unsigned:表示无符号类型,用于定义无符号整型变量。
  9. signed:表示有符号类型,用于定义有符号整型变量。
    C:复杂类型关键字
  10. struct:用于定义结构体类型。
  11. enum:用于定义枚举类型。
  12. typedef:用于给已有的数据类型起别名。
  13. union:共用体声明
  14. sizeof:得到特定类型或特定变量的大小
    D:存储级别关键字
  15. auto:自动变量
  16. static:静态变量
  17. register:寄存器变量
  18. extern:指定对应变量为外部变量
  19. const:指定变量不可被当前进程/线程改变
    1.2.2流程控制关键字
    跳转结构
  20. return:用在函数体中,返回特定值或者不返回值
  21. contnue:结束当前循环,开始下一轮循环
  22. break:跳出当前循环或switch结构
  23. goto:无条件跳转语句;
    分支结构
  24. if:条件语句
  25. else条件语句否定分支
  26. switch:开关语句
  27. case:开关语句的分支标记
  28. default:开关语句的其他分支
    循环结构:
  29. for:for循环for(1;2;3);2为循环条件
  30. do: do循环do {1}while(2);,2为循环条件
  31. while:while 循环 while(1){2};1为循环条件
    1.%d有符号10进制整数。
    2.%i有符号10进制整数。
    3.%o有符号8进制整数。
    4.%u无符号10进制整数。
    5.%x无符号的16进制数字,并以小写abcdef表示。
    6.%X无符号的16进制数字,并以大写ABCDEF表示。
    7.%F/%f浮点数。
    8.%E/%e用科学表示格式的浮点数。
    9.%g使用%f和%e表示中的总的位数表示最短的来表示浮点数G同g格式,但表示为指数。
    10.%c单个字符。
    11.%s字符串。
    12.%%显示百分号本身。
    int %dl
    float %f
    double %lf
    char %c %s
    long int %ld

二、 C语言的三大结构

1.顺序结构

C语言的顺序结构是指程序按照代码的书写顺序一步一步地执行,没有跳转或分支的情况。顺序结构是C语言中最基本的控制结构,也是最简单的结构。

在顺序结构中,每一条语句都会按照顺序被执行,一条语句执行完毕后才会执行下一条语句。这样的执行顺序是线性的,没有分支或循环的干扰。
代码如下(示例):

#include <stdio.h>

int main() {
    
    int number1 = 5;
    int number2 = 10;
    int sum = number1 + number2;

    printf("The sum is: %d\n", sum);

    return 0;
}

在这个例子中,首先定义了两个整数变量number1和number2,并将它们的和赋值给变量sum。然后,使用printf函数将sum的值输出到屏幕上。最后,通过return语句返回0,表示程序执行成功。

这个例子中的代码按照顺序执行,没有跳转或分支。每一条语句都会依次执行,直到程序结束。这就是C语言的顺序结构的特点。

2.选择结构

C语言中的选择结构有以下几种:

  1. if语句:用于在满足条件时执行一段代码,如果条件不满足,则可以选择执行另一段代码或者不执行任何代码。

  2. if-else语句:在if语句的基础上扩展,当条件满足时执行一段代码,如果条件不满足,则执行另一段代码。

例题:写出简易计算器,实现+、 -、 、/、%功能
6.2%2.5 45.3/0 78%0 20%0.2 3
6.6
在这里插入图片描述

  1. else-if语句:在if-else语句的基础上扩展,可以在条件不满足时,再增加一组条件,继续进行判断。

  2. switch语句:用于根据不同的条件值选择不同的代码执行路径,类似于多重选择。
    在这里插入图片描述

选择结构可以根据条件的不同执行不同的代码片段,使程序具有更强的灵活性和适应性。

3.循环结构

C语言中的循环结构主要有以下三种:

  1. for循环:for循环是一种常用的循环结构,用于重复执行固定次数的代码块。它的语法如下:

    for (初始化表达式; 循环条件; 更新表达式) {
    // 循环体代码
    }
    在这里插入图片描述
    在这里插入图片描述

    初始化表达式在循环开始之前只会执行一次,用于初始化循环控制变量。
    循环条件是一个逻辑表达式,只有当条件为真时才会执行循环体,否则直接跳出循环。
    更新表达式在每次循环结束后执行,用于更新循环控制变量的值。

  2. while循环:while循环是一种在循环开始之前先判断条件,只有条件为真时才会执行循环体的循环结构。它的语法如下:

    while (循环条件) {
    // 循环体代码
    }
    在这里插入图片描述

    循环条件是一个逻辑表达式,只有当条件为真时才会执行循环体,否则直接跳出循环。

  3. do-while循环:do-while循环是一种先执行一次循环体,然后再判断条件是否为真的循环结构。它的语法如下:

    do {
    // 循环体代码
    } while (循环条件);

    循环条件是一个逻辑表达式,只有当条件为真时才会继续执行循环体,否则直接跳出循环。

这三种循环结构都可以用来重复执行一段代码,具体选择哪种循环结构取决于循环次数的确定与否以及循环条件的判断时机。

总结

C语言是一种高级编程语言,广泛应用于嵌入式系统、操作系统、编译器等领域。下面是C语言基础的本章总结:

  1. 语法和数据类型:C语言的语法简洁明了,主要包括变量声明、赋值、运算符、条件语句、循环语句等。C语言中有多种数据类型,包括整型、浮点型、字符型等。
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/hpkzs/article/details/136545461

智能推荐

Linux查看登录用户日志_怎么记录linux设备 发声的登录和登出-程序员宅基地

文章浏览阅读8.6k次。一、Linux记录用户登录信息文件1  /var/run/utmp----记录当前正在登录系统的用户信息;2  /var/log/wtmp----记录当前正在登录和历史登录系统的用户信息;3  /var/log/btmp:记录失败的登录尝试信息。二、命令用法1.命令last,lastb---show a listing of la_怎么记录linux设备 发声的登录和登出

第四章笔记:遍历--算法学中的万能钥匙-程序员宅基地

文章浏览阅读167次。摘要:1. 简介 2. 公园迷宫漫步 3. 无线迷宫与最短(不加权)路径问题 4. 强连通分量1. 简介在计算机科学裡,树的遍历(也称为树的搜索)是圖的遍歷的一种,指的是按照某种规则,不重复地访问某种樹的所有节点的过程。具体的访问操作可能是检查节点的值、更新节点的值等。不同的遍历方式,其访问节点的顺序是不一样的。两种著名的基本遍历策略:深度优先搜索(DFS) 和 广度优先搜索(B...

【案例分享】使用ActiveReports报表工具,在.NET MVC模式下动态创建报表_activereports.net 实现查询报表功能-程序员宅基地

文章浏览阅读591次。提起报表,大家会觉得即熟悉又陌生,好像常常在工作中使用,又似乎无法准确描述报表。今天我们来一起了解一下什么是报表,报表的结构、构成元素,以及为什么需要报表。什么是报表简单的说:报表就是通过表格、图表等形式来动态显示数据,并为使用者提供浏览、打印、导出和分析的功能,可以用公式表示为:报表 = 多样的布局 + 动态的数据 + 丰富的输出报表通常包含以下组成部分:报表首页:在报表的开..._activereports.net 实现查询报表功能

Ubuntu18.04 + GNOME xrdp + Docker + GUI_docker xrdp ubuntu-程序员宅基地

文章浏览阅读6.6k次。最近实验室需要用Cadence,这个软件的安装非常麻烦,每一次配置都要几个小时,因此打算把Cadence装进Docker。但是Cadence运行时需要GUI,要对Docker进行一些配置。我们实验室的服务器运行的是Ubuntu18.04,默认桌面GNOME,Cadence装进Centos的Docker。安装Ubuntu18.04服务器上安装Ubuntu18.04的教程非常多,在此不赘述了安装..._docker xrdp ubuntu

iOS AVFoundation实现相机功能_ios avcapturestillimageoutput 兼容性 ios17 崩溃-程序员宅基地

文章浏览阅读1.8k次,点赞2次,收藏2次。首先导入头文件#import 导入头文件后创建几个相机必须实现的对象 /** * AVCaptureSession对象来执行输入设备和输出设备之间的数据传递 */ @property (nonatomic, strong) AVCaptureSession* session; /** * 输入设备 */_ios avcapturestillimageoutput 兼容性 ios17 崩溃

Oracle动态性能视图--v$sysstat_oracle v$sysstat视图-程序员宅基地

文章浏览阅读982次。按照OracleDocument中的描述,v$sysstat存储自数据库实例运行那刻起就开始累计全实例(instance-wide)的资源使用情况。 类似于v$sesstat,该视图存储下列的统计信息:1>.事件发生次数的统计(如:user commits)2>._oracle v$sysstat视图

随便推点

Vue router报错:NavigationDuplicated {_name: "NavigationDuplicated", name: "NavigationDuplicated"}的解决方法_navigationduplicated {_name: 'navigationduplicated-程序员宅基地

文章浏览阅读7.6k次,点赞2次,收藏9次。我最近做SPA项目开发动态树的时候一直遇到以下错误:当我点击文章管理需要跳转路径时一直报NavigationDuplicated {_name: “NavigationDuplicated”, name: “NavigationDuplicated”}这个错误但是当我点击文章管理后,路径跳转却是成功的<template> <div> 文章管理页面 <..._navigationduplicated {_name: 'navigationduplicated', name: 'navigationduplic

Webrtc回声消除模式(Aecm)屏蔽舒适噪音(CNG)_webrtc aecm 杂音-程序员宅基地

文章浏览阅读3.9k次。版本VoiceEngine 4.1.0舒适噪音生成(comfort noise generator,CNG)是一个在通话过程中出现短暂静音时用来为电话通信产生背景噪声的程序。#if defined(WEBRTC_ANDROID) || defined(WEBRTC_IOS)static const EcModes kDefaultEcMode = kEcAecm;#elsestati..._webrtc aecm 杂音

医学成像原理与图像处理一:概论_医学成像与图像处理技术知识点总结-程序员宅基地

文章浏览阅读6.3k次,点赞9次,收藏19次。医学成像原理与图像处理一:概论引言:本系列博客为医学成像原理与图像处理重要笔记,由于是手写,在此通过扫描录入以图片的形式和电子版增补内容将其进行组织和共享。前半部分内容为图像处理基础内容,包括图像的灰度级处理、空间域滤波、频率域滤波、图像增强和分割等;后半部分内容为医学影象技术,包括常规胶片X光机、CR、DR、CT、DSA等X射线摄影技术、超声成像技术、磁共振成像(MRI)技术等。本篇主要内容是概论。_医学成像与图像处理技术知识点总结

notepad++ v8.5.3 安装插件,安装失败怎么处理?下载进度为0怎么处理?_nodepa++-程序员宅基地

文章浏览阅读591次,点赞13次,收藏10次。notepad++ v8.5.3 安装插件,下载进度为0_nodepa++

hive某个字段中包括\n(和换行符冲突)_hive sql \n-程序员宅基地

文章浏览阅读2.1w次。用spark执行SQL保存到Hive中: hiveContext.sql(&quot;insert overwrite table test select * from aaa&quot;)执行完成,没报错,但是核对结果的时候,发现有几笔数据超出指定范围(实际只包含100/200)最终排查到是ret_pay_remark 字段包含换行符,解决方案:执行SQL中把特殊字符替换掉regexp_replace(..._hive sql \n

印象笔记05:如何打造更美的印象笔记超级笔记_好的印象笔记怎么做的-程序员宅基地

文章浏览阅读520次,点赞10次,收藏8次。印象笔记05:如何打造更美的印象笔记超级笔记本文介绍印象笔记的具体使用,如何打造更美更实用的笔记。首先想要笔记更加好看和实用,我认为要使用超级笔记。所谓超级笔记就是具有很多便捷功能的笔记。_好的印象笔记怎么做的

推荐文章

热门文章

相关标签