C语言超详细教程

news/2024/11/27 18:32:33/

系列文章目录

文章目录

  • 系列文章目录
  • 1 运算符
    • 1.1 算术运算符:
  • 2 控制语句
    • 2.1 条件语句:
    • 2.2 循环语句:
  • 3 函数
    • 3.1 函数的定义与声明:
    • 3.2 递归函数:
  • 4 指针
    • 4.1 指针的定义与使用
      • 函数指针:
  • 5. 数组与字符串
    • 5.1 数组
      • 一维数组:相同类型元素的集合(如:
      • 多维数组:数组的数组(如:
      • 字符串:
  • 6 结构体与联合体
    • 6.1 结构体
      • 联合体
  • 7 .文件处理
    • 7.1 文件的打开与关闭:
      • 读写文件:
  • 8 预处理指令
    • 8.1 头文件包含
      • 宏定义:
      • 条件编译
  • 9 错误处理与调试
    • 9.1 错误处理
  • 10 C语言标准库
  • 11 程序结构与风格
    • 11.1 程序结构:


1 运算符

1.1 算术运算符:

常用的算术运算符包括加+、减-、乘*、除/、余数%。
关系运算符:

比较两个值的关系,如等于==、不等于!=、大于>、小于<等。
逻辑运算符:

用于计算布尔表达式结果,如与&&、或||、非!。

2 控制语句

2.1 条件语句:

if:根据条件执行代码块。
else if 和 else:提供多个条件分支。
switch:基于单一变量的多个可能值进行分支。
示例:

c
if (age >= 18) {
printf(“成年人\n”);
} else {
printf(“未成年人\n”);
}

2.2 循环语句:

for:适合已知次数的循环(如:
c
for (int i = 0; i < 5; i++) {
printf("%d “, i);
}
while:适合未知次数的循环,基于条件(如:
c
int i = 0;
while (i < 5) {
printf(”%d “, i);
i++;
}
do…while:至少执行一次的循环形式(如:
c
int i = 0;
do {
printf(”%d ", i);
i++;
} while (i < 5);
跳转语句:

break:终止循环或switch结构。
continue:跳过当前循环的剩余部分,继续下一次循环。
return:结束函数并返回值。

3 函数

3.1 函数的定义与声明:

函数声明(原型)一般放在文件顶部,定义在文件底部(如:
c
int add(int a, int b); // 函数声明
int add(int a, int b) { // 函数定义
return a + b;
}

参数传递:
值传递:将参数的副本传入函数。
引用传递:通过指针传递,直接修改原始数据


http://www.ppmy.cn/news/1550411.html

相关文章

道路机器人识别交通灯,马路,左右转,黄线,人行道,机器人等路面导航标志识别-使用YOLO标记

数据集分割 train组66% 268图片 validation集22% 91图片 test集12&#xff05; 48图片 预处理 没有采用任何预处理步骤。 增强 未应用任何增强。 数据集图片&#xff1a; 交通灯 马路 右转 向右掉头 机器人识别 人行横道 黄线 直行或右转 数据集下载&#xff1a; 道路…

React第七节 组件三大属性之 refs 的用法注意事项

1、定义 React 中refs 是允许我们操作DOM 访问组件实例的一种方案。开发人员可以直接使用 refs 访问操作DOM&#xff0c;而不用自身的数据状态&#xff0c;这种方案在实际开发过程中是有必要的&#xff0c;但是不建议通篇使用refs操作DOM&#xff0c;如果是这样&#xff0c;那…

webrtc支持h265

Webrtc播放H265的技术探索(datachannelwasm) - 飞翔天空energy - 博客园 https://github.com/ZLMediaKit/ZLMediaKit/issues/3589 [技术咨询]addStreamProxy 添加拉流代理之后&#xff0c;webrtc协议无法播放&#xff0c;其它协议正常 Issue #1808 ZLMediaKit/ZLMediaKit G…

Python学习——猜拳小游戏

import random player int(input(“请输入&#xff1a;剪刀 0&#xff0c;石头 1&#xff0c;布2”)) computer random.randint(0,2)# print(“玩家输入的是%d&#xff0c;电脑输入的是%d” %(player,computer)) 用于测试 if (player 0) and (computer 0) or (player 1) a…

vue3 发送 axios 请求时没有接受到响应数据

<script setup> import Edit from ./components/Edit.vue import axios from axios import { onMounted,ref } from vue// TODO: 列表渲染 //装数据的列表 const list ref([]) const count ref(0) const getList async () > {//通过发送 /list 请求从后端拿到列表数…

C#.Net筑基 - 常见类型

01、结构体类型Struct 结构体 struct 是一种用户自定义的值类型&#xff0c;常用于定义一些简单&#xff08;轻量&#xff09;的数据结构。对于一些局部使用的数据结构&#xff0c;优先使用结构体&#xff0c;效率要高很多。 可以有构造函数&#xff0c;也可以没有。因此初始化…

HCIA笔记3--TCP-UDP-交换机工作原理

1. tcp协议 可靠的连接 1.1 报文格式 1.2 三次握手 1.3 四次挥手 为什么TIME_WAIT需要2MSL的等待时间&#xff1f; &#xff08;a&#xff09; 为了实现可靠的关闭 &#xff08;b&#xff09;为了让过期的报文在网络上消失 对于(a), 假设host发给server的last ack丢了。 ser…

SpringBoot(三十九)SpringBoot集成RabbitMQ实现流量削峰添谷

前边我们有具体的学习过RabbitMQ的安装和基本使用的情况。 但是呢&#xff0c;没有演示具体应用到项目中的实例。 这里使用RabbitMQ来实现流量的削峰添谷。 一&#xff1a;添加pom依赖 <!--rabbitmq-需要的 AMQP 依赖--> <dependency><groupId>org.springfr…