C 基础 - 预处理命令和基本语法详解

#include <stdio.h> //预处理指令int main()   //函数
{printf("Hello, World!"); //输出语句return 0; //返回语句 
}

目录

一.预处理指令

1.#define  #ifdef  #ifndef  #if #else  #elif #endif

2.#inlcude

a.新增一个文件

b.#include

c.运行结果

d.扩展

e.<> 和 "" 的区别

二.基本语法

一定要注意,编程时请选择正确的输入法,严格区分中英文;

1.语句由分号结束

2.部分语句例子(这里面代表的含义,后面会有详解)

3.注释

4.标识符

5.关键字


一.预处理指令

指令描述
#define定义宏
#include包含一个源代码文件
#undef取消已定义的宏
#ifdef如果宏已经定义,则返回真
#ifndef如果宏没有定义,则返回真
#if如果给定条件为真,则编译下面代码
#else#if 的替代方案
#elif如果前面的 #if 给定条件不为真,当前条件为真,则编译下面代码
#endif结束一个 #if……#else 条件编译块
#error当遇到标准错误时,输出错误消息
#pragma使用标准化方法,向编译器发布特殊的命令到编译器中

例子

1.#define  #ifdef  #ifndef  #if #else  #elif #endif

运行结果,而且在vs里面可以看的,条件没达成,不允许的语句变灰了.

代码

#include <stdio.h> //预处理指令
#define PI 3   //定义宏int main()   //函数
{printf("PI = %d \n",PI); //输出为  PI=3#ifdef  PI   //如果宏PI以定义则条件为真printf("true \n"); //输出为 true
#endif //  PI#ifndef  PI   //如果宏PI没定义则条件为真printf("false \n"); //输出为 false
#endif //  PI#if PI == 1     printf("PI == 1 \n ");
#elif PI == 2 printf("PI == 2 \n ");
#elseprintf("PI == 3  \n");
#endifreturn 0; //返回语句 
}

2.#inlcude

当预处理器发现#include 指令时,会查看后面的文件名并把文件的内容包含到当前文件中.

例子

a.新增一个文件

b.#include

c.运行结果

d.扩展

#include "DefinePI.cpp" 就是把 DefinePI.cpp里的内容 复制到这里.替换掉 #include "DefinePI.cpp"

e.<> 和 "" 的区别

尖括号告诉预处理器在系统类库目录中查找该文件。

按住Ctrl,鼠标左键点击 stdio.h,即可跳转.后续的函数,变量定义也可用此方式跳转

双引号是从当前路径开始查找,

比如:

在同一个文件夹下,就可以直接  #include "DefinePI.cpp"

不在同一个文件夹内,就要添加路径 我们新建一个文件夹,

添加上路径.

二.基本语法

一定要注意,编程时请选择正确的输入法,严格区分中英文;

1.语句由分号结束

printf("Hello, World! \n");
return 0;

2.部分语句例子(这里面代表的含义,后面会有详解)

	int a;int a1 = 1;bool b = true;char c = 1.0f;

3.注释

注释是给人看的,编译器遇到的时候会直接跳过.

#include <stdio.h>
int main()   
{//这是单行注释/*这是多行注释	*/return 0; 
}

4.标识符

就是上面距离代码中 , int a1 = 1; a1就是标识符,用来方便区分,和后面的使用.

还可以用来标识(一下只做了解)

  • 函数名 ( 比如前面使用到的 int main()   main 就是函数名)
  • 结构体
  • 指针
  • 数组
  • 自定义的项目名称等等

规则是

允许:

一个标识符以字母 A-Z 或 a-z 或下划线 _ 开始,后跟零个或多个字母、下划线和数字(0-9)

如: name , School_Name


不允许:

出现标点字符


对大小写敏感,区分大小写, 

如: School_Name ,school_name ,school_Name 是三个不同的标识符

5.关键字

是C语言保留的一些有特殊作用词语,不可以用来做标识符;

详解

关键字描述
auto声明自动变量
double声明双精度变量或函数
typedef用以给数据类型取别名
register声明寄存器变量
short声明短整型变量或函数
char声明字符型变量或函数
const声明只读变量
static声明静态变量int声明整型变量或函数
struct声明结构体变量或函数
unsigned声明无符号类型变量或函数
volatile说明变量在程序执行中可被隐含地改变long声明长整型变量或函数
union声明共用数据类型
signed声明有符号类型变量或函数
void声明函数无返回值或无参数,声明无类型指针float声明浮点型变量或函数
enum声明枚举类型
extern声明变量是在其他文件正声明
if条件语句
else条件语句否定分支(与 if 连用)
switch用于开关语句
case开关语句分支
for一种循环语句do循环语句的循环体
while循环语句的循环条件
goto无条件跳转语句
continue结束当前循环,开始下一轮循环break跳出当前循环
default开关语句中的"其他"分支
sizeof计算数据类型长度
return子程序返回语句(可以带参数,也可不带参数)循环条件

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/337323.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

云计算与 openstack

文章目录 一、 虚拟化二、云计算2.1 IT系统架构的发展2.2 云计算2.3 云计算的服务类型 三、Openstack3.1 OpenStack核心组件 一、 虚拟化 虚拟化使得在一台物理的服务器上可以跑多台虚拟机&#xff0c;虚拟机共享物理机的 CPU、内存、IO 硬件资源&#xff0c;但逻辑上虚拟机之…

基于单片机的恒流开关电源 BUCK电路设计

1 前言 1.1课题研究意义 开关电源顾名思义&#xff0c;开关电源便是使用半导体开关器件&#xff08;如晶体管、场效应管、可控硅闸流管等&#xff09;&#xff0c;经过控制电路&#xff0c;使半导体开关器件不停地“导通”和“关闭”&#xff0c;让半导体开关器件对输入的电压…

【数据结构】详解二叉树

文章目录 1.树的结构及概念1.1树的概念1.2树的相关结构概念1.3树的表示1.4树在实际中的应用 2.二叉树的结构及概念2.1二叉树的概念2.2特殊的二叉树2.2.1满二叉树2.2.2完全二叉树 2.3 二叉树的性质2.4二叉树的存储结构2.4.1顺序结构2.4.2链表结构 1.树的结构及概念 1.1树的概念…

if语句知识点

作用 让顺序执行的代码产生分歧。 if 语句 作用&#xff1a;满足条件时&#xff0c;多执行一些代码。 语法&#xff1a; if(bool类型值)//bool类型相关&#xff1a;bool变量&#xff0c;条件运算符表达式&#xff0c;逻辑运算符表达式 {满足条件要执行的代码&#xff0c;写在…

c++ QT 实现QMediaPlayer播放音频显示音频级别指示器

文章目录 效果图概述代码总结 效果图 概述 QMediaPlayer就不介绍了&#xff0c;就提供了一个用于播放音频和视频的媒体播放器 QAudioProbe 它提供了一个探针&#xff0c;用于监控音频流。当音频流被捕获或播放时&#xff0c;QAudioProbe 可以接收到音频数据。这个类在需要访问…

【Java面试】六、Spring框架相关

文章目录 1、单例Bean不是线程安全的2、AOP3、Spring中事务的实现4、Spring事务失效的场景4.1 情况一&#xff1a;异常被捕获4.2 情况二&#xff1a;抛出检查异常4.3 注解加在非public方法上 5、Bean的生命周期6、Bean的循环引用7、Bean循环引用的解决&#xff1a;Spring三级缓…

结构体相关习题的补充

结构体相关习题的补充 题目1&#xff1a; 如有以下代码&#xff1a; struct student {int num;char name[32];float score; }stu;则下面的叙述不正确的是&#xff1a;( ) A.struct 是结构体类型的关键字 B.struct student 是用户定义的结构体类型 C.num, score 都是结构体…

Python中Web开发-Django框架

大家好&#xff0c;本文将带领大家进入 Django 的世界&#xff0c;探索其强大的功能和灵活的开发模式。我们将从基础概念开始&#xff0c;逐步深入&#xff0c;了解 Django 如何帮助开发人员快速构建现代化的 Web 应用&#xff0c;并探讨一些最佳实践和高级技术。无论是初学者还…

身份认证与口令攻击

身份认证与口令攻击 身份认证身份认证的五种方式口令认证静态口令动态口令(一次性口令)动态口令分类 密码学认证一次性口令认证S/KEY协议改进的S/KEY协议 其于共享密钥的认证 口令行为规律和口令猜测口令规律口令猜测 口令破解操作系统口令破解Windows密码存储机制Windows密码破…

数据结构-堆排序问题

需要在数组里面进行排序&#xff0c;我们可以采取堆排序对其解决问题 版本1&#xff1a; 创建一个数组等大的堆&#xff0c;把数组里面的数值输入到堆里面进行堆排序&#xff0c;但是这样的弊端就是&#xff0c;不是顺序排序 版本2&#xff1a; 每次我们取堆顶然后打印&#xf…

举个栗子!Tableau 技巧(275):散点图的数值重合怎么办?抖动图来咯

散点图是大家经常使用的分析图表&#xff0c;但是如果出现多个数据点具有完全相同的 X 和 Y 值&#xff0c;多个散点重叠并隐藏后&#xff0c;查看数据就很不方便了。 遇到这种情况&#xff0c;该怎么办&#xff1f;其实可以尝试将数据点稍微抖动一下&#xff01;如下图&#…

MT3045 松鼠接松果

思路&#xff1a; 求x的一个区间&#xff0c;使区间中的松果的最大y坐标和最小y坐标的差至少为D。若有多个区间&#xff0c;则取最小的那个。 即使用单调队列不断维护最大值和最小值。 首先L固定不动&#xff0c;R不断右移&#xff1a; 即若函数f(R)max[L,R]-min[L,R] >…

探秘Flask中的表单数据处理

新书上架~&#x1f447;全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我&#x1f446;&#xff0c;收藏下次不迷路┗|&#xff40;O′|┛ 嗷~~ 目录 一、引言 二、Flask中的表单处理机制 三、Flask表单处理实战 四、处理表单数据的注意事项…

万字解析线控底盘技术

文章出处&#xff1a;汽车学堂Automooc 引言 在当今这个由科技驱动的时代&#xff0c;汽车电动化、智能化已成为汽车行业的热门话题。特斯拉的自动驾驶功能、蔚来的换电模式、以及比亚迪的刀片电池技术&#xff0c;这些创新不仅引领着市场趋势&#xff0c;也推动着消费者对智…

Java常用API(三)

一、Arrays类 1.定义 Arrays是一个用于操作数组的工具类。 2.常用方法 1.toString方法 public class Demo {public static void main(String[] args) {//toString 将数组变成字符串int[] arr {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};System.out.println(Arrays.toString(arr));…

DNS 解析过程

文章目录 简介特点查询方式⚡️1. 浏览器缓存2. 系统缓存&#xff08;hosts文件&#xff09;3. 路由器缓存4. 本地域名服务器5. 根域名服务器6. 顶级域名服务器7. 权限域名服务器8. 本地域名服务器缓存并返回9. 操作系统缓存并返回10. 浏览器缓存并访问流程图 总结 简介 DNS&a…

springboot2+mybatis-plus+vue3创建入门小项目[学生管理系统]02[实战篇]

01学习篇 创建一个 vue 项目 创建这个新的文件夹 创建前端项目 eggbox 数据库 SQL CREATE DATABASE IF NOT EXISTS egg DEFAULT CHARACTER SET utf8 COLLATE utf8_bin; USE egg;CREATE TABLE stu (id INT AUTO_INCREMENT, -- 自增主键name VARCHAR(64) NOT NULL, -- 非空…

如何使用前端表格控件实现多数据源整合?

前言 作为表格产品的典型应用场景之一&#xff0c;几乎所有的行业都会存在类 Excel 报表开发这样的应用场景&#xff0c;而在这些应用场景中&#xff0c;经常会遇见下面的这些痛点&#xff1a; 报表数据往往来自多个不同的数据源&#xff0c;需要报表系统能够同时连接多个数据源…

反VC情绪:加密市场需要新的分布式代币发行方式

GME事件 GME事件反应了社交媒体在金融决策中的影响力&#xff0c;散户投资者群体通过集体行动&#xff0c;改变了很多人对股市的看法和参与方式。 GME事件中&#xff0c;meme扮演了核心角色。散户投资者使用各种meme来沟通策略、激励持股行为&#xff0c;创造了一种反对华尔街…

5. MySQL运算符和函数

文章目录 【 1. 算术运算符 】【 2. 逻辑运算符 】2.1 逻辑非 (NOT 或者 !)2.2 逻辑与运算符 (AND 或者 &&)2.3 逻辑或 (OR 或者 ||)2.4 异或运算 (XOR) 【 3. 比较运算符 】3.1 等于 3.2 安全等于运算符 <>3.3 不等于运算符 (<> 或者 !)3.4 小于等于运算符…