C语言基础语法..

1.函数的基本语法

函数的格式为:
返回值类型 函数名(参数列表){
函数体(包括返回值语句)
}

利用上述的格式 我们可以自己整一个实现加法功能的函数

int add(int a, int b){return a + b;
}
int main(){int c = add(10, 20);printf("%d", c);// 30return 0;
}

从中我们可以看出 我们通过主函数调用了加法函数 从而执行了两数的加法运算 也就是说 主函数是整个C语言程序的入口 而且有且只能有一个主函数
而且我们从传递的参数可以看出 参数的个数必须一致 而且类型也要尽量一致 否则的话 编译器就会报错(当形参和实参的类型不一致的话 那么编译器会尝试进行自动类型转换 如果转换失败的话 那么就会直接编译失败)

那么既然加法函数被主函数调用了 那么有一个疑问就是主函数被谁调用了呢?其实主函数在程序运行后就被自动调用了 不需要我们手动调用主函数 而且主函数的返回值会返回给调用该C语言程序的程序(C标准中规定主函数的返回值必须是int类型 我们一般返回值设置为0即可)

要调用函数 首先要知道函数 编译器是从上往下进行阅读的 当编译器阅读到函数调用语句时 如果他不知道该函数的定义(也就是之前没有阅读过该函数的定义 不理解这是什么) 那么就会编译失败 也就是说 函数的定义要放在函数调用语句之前

2.变量的基本语法

所谓变量 就是一个装有变量类型数据的容器

int a = 10;

上述语句 其实就是将10这个int类型的数据通过赋值运算符装进a这个变量容器中
所谓赋值运算符 就是将右边数据装进左边容器的一种运算符 需要和比较运算符(==)区分开来

a = 10;// error

上述写法是错误的 变量需要先声明后使用

3.标识符

标识符就是一个自定义的名称 包括变量名、函数名或者其他实体的名称
标识符必须遵循这些规则:
由数字、字母、下划线组成;不能由数字开头;区分大小写

4.关键词

那么我们可以思考一下int是不是标识符呢 显然不是

int main(){int double = 10;// errorreturn 0;
}

通过上述案例我们就可以作为验证

C标准对于这种东西有自己的归类 他将其归结为关键词
C语言的关键词有以下这些:
在这里插入图片描述
在这里插入图片描述

5.常量的基本语法

我们先来介绍一种常量 即字面常量
诸如2、3这种东西就叫做字面常量
但是不像变量那样 先声明在使用 他不需要声明 可以直接使用
而且变量可以通过赋值进行更改 但是常量不能进行赋值操作

6.printf函数

对于第一个固定的字符串参数 其他是可变数量和类型的参数 这是一个变参函数 而且属于格式化输出

int main(){printf("my name is %s, my age is %d", "jack", 11);return 0;
}

该函数的格式为:
printf(“占位1 占位2 占位3……”, 替换1, 替换2, 替换3……);

但是我们前面所说的函数调用 我们在调用之前 需要让编译器知道他的定义 否则就会编译失败
但是我们在调用printf函数之前 并没有自定义这个函数 至于这个函数的定义在哪里 其实是位于我们所导入的包stdio.h中 但是这个函数库中储存的是函数声明 而不是函数定义 但是又编译成功了 这是什么原因呢 后面会讲到

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

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

相关文章

基于Vue2用keydown、setTimeout事件实现连续按键(连击)任意键(或组合键)3秒触发自定义事件(以F1键为例)

核心代码 <template></template> <script> export default {created() {//监听弹起快捷键addEventListener("keyup", this.keyup);},destroyed(d) {//移除监听弹起快捷键removeEventListener("keyup", this.keyup);},methods: {keyup(…

golang开发window环境搭建

1.本人开发环境&#xff1a;window10,idea2020.1.3 2.Go语言环境版本1.5.1 2.1. go语言插件 下载地址 csdn - 安全中心 2.1.1 go的各个版本官网Other Versions - GoLand 2.2下载安装 3.idea配置go环境 4.创建go项目 、5.运行

Linux 性能调优之虚拟化(Virtualization tuned)调优

写在前面 考试整理相关笔记博文内容涉及Linux 虚拟化常见管理操作以及部分调优配置理解不足小伙伴帮忙指正 不必太纠结于当下&#xff0c;也不必太忧虑未来&#xff0c;当你经历过一些事情的时候&#xff0c;眼前的风景已经和从前不一样了。——村上春树 使用工具进行调优 可以…

BLEUScore AttributeError: ‘list‘ object has no attribute ‘split‘——问题解决

目录 问题解决 问题 出现错误&#xff1a; BLEUScore AttributeError: ‘list’ object has no attribute ‘split’ 解决 应该是torchmetrics版本对torch的要求&#xff0c;需要对应版本: pip install torchmetrics0.6.2具体需要根据自己版本去降低&#xff0c;一般是往低…

Unet 实战分割项目、多尺度训练、多类别分割

1. 介绍 之前写了篇二值图像分割的项目&#xff0c;支持多尺度训练&#xff0c;网络采用backbone为vgg的unet网络。缺点就是没法实现多类别的分割&#xff0c;具体可以参考&#xff1a;二值图像分割统一项目 本章只对增加的代码进行介绍&#xff0c;其余的参考上述链接博文 本…

在本地运行大型语言模型 (LLM) 的六种方法(2024 年 1 月)

一、说明 &#xff08;开放&#xff09;本地大型语言模型&#xff08;LLM&#xff09;&#xff0c;特别是在 Meta 发布LLaMA和后Llama 2&#xff0c;变得越来越好&#xff0c;并且被越来越广泛地采用。 在本文中&#xff0c;我想演示在本地&#xff08;即在您的计算机上&#x…

DataX详解和架构介绍

系列文章目录 一、 DataX详解和架构介绍 二、 DataX源码分析 JobContainer 三、DataX源码分析 TaskGroupContainer 四、DataX源码分析 TaskExecutor 五、DataX源码分析 reader 六、DataX源码分析 writer 七、DataX源码分析 Channel 文章目录 系列文章目录DataX是什么&#xff…

【QT】VS-code报错:LNK2019: 无法解析的外部符号

目录 0.环境 1.问题简述 2.分析报错原因 3.解决方法 1&#xff09;set() 相关语句 2&#xff09;target_link_libraries() 相关语句 4.参考 0.环境 windows11 、 vs-code 、 qt 、 c、编译器为vs2019-x86_amd64 1.问题简述 项目编译release版本时会报错&#xff1a;报错…

页面单跳转换率统计案例分析

需求说明 页面单跳转化率 计算页面单跳转化率&#xff0c;什么是页面单跳转换率&#xff0c;比如一个用户在一次 Session 过程中访问的页面路径 3,5,7,9,10,21&#xff0c;那么页面 3 跳到页面 5 叫一次单跳&#xff0c;7-9 也叫一次单跳&#xff0c; 那么单跳转化率就是要统计…

c语言--指针的传值调用和传址调用

目录 一、前言二、传值调用。三、传址调用四、总结 一、前言 学习指针的目的是使用指针解决问题&#xff0c;那什么问题&#xff0c;非指针不可呢&#xff1f; 二、传值调用。 写个函数&#xff0c;交换两个整数的内容。 #include<stdio.h> void Swap1(int x, int y)…

在 Java 中处理整数上溢和下溢

本文介绍整数数据类型的上溢和下溢以及该问题的处理。 Java 中整数上溢和下溢概述 如果您使用整数值&#xff0c;则可能会遇到上溢或下溢错误。 当我们错误地声明变量时&#xff0c;就会发生这种情况&#xff0c;例如分配的值超出了声明的数据类型的范围。 众所周知&#xff…

LabVIEW双光子荧光显微成像系统开发

双光子显微成像是一种高级荧光显微技术&#xff0c;广泛用于生物学和医学研究&#xff0c;尤其是用于活体组织的深层成像。在双光子成像过程中&#xff0c;振镜&#xff08;Galvo镜&#xff09;扮演了非常关键的角色&#xff0c;它负责精确控制激光束在样本上的扫描路径。以下是…

读分布式稳定性建设指南文档

最近还是在做一些和稳定性建设相关的事情&#xff0c;找到一份《分布式稳定性建设指南》文档&#xff0c;摘抄了其中的重点&#xff0c;以便后续回顾方便&#xff0c;一直没上传好资源&#xff0c;我之后再试试&#xff0c;原文内容质量非常高。 大家可以先看一级目录即可&…

掌握Web服务器之王:Nginx 学习网站全攻略!

介绍&#xff1a;Nginx是一款高性能的Web服务器&#xff0c;同时也是一个反向代理、负载均衡和HTTP缓存服务器。具体介绍如下&#xff1a; 轻量级设计&#xff1a;Nginx的设计理念是轻量级&#xff0c;这意味着它在占用最少的系统资源的同时提供高效的服务。 高并发能力&#x…

go 内存二进制数据操作

go 内存二进制数据操作 go 内存二进制数据直接操作 以数字类型为例 int(linux/macos 为int32,windows 为int64). 如果不清楚可以使用unsafe.Sizeof函数来查看(函数出来的值*8就是int位数) 若不使用内存二进制数据操作&#xff0c;你需要在每次获取数字内容时调用binary.Big…

五、机器学习模型及其实现1

1_机器学习 1&#xff09;基础要求&#xff1a;所有的数据全部变为了特征&#xff0c;而不是eeg信号了 python基础已经实现了特征提取、特征选择&#xff08;可选&#xff09;进行了数据预处理.预处理指对数据进行清洗、转换等处理&#xff0c;使数据更适合机器学习的工具。S…

完全背包总结二

1.完全背包和0/1背包的区别&#xff1f; 完全背包的物体有无限个&#xff0c;可以多次放入 0/1背包的物体只有一个&#xff0c;只能放入一次 2.关于物品遍历顺序 在0/1背包中为了防止物品被重复放入&#xff0c;所以选择倒序遍历背包 而完全背包中&#xff0c;可以重复放入…

Datax3.0+DataX-Web部署分布式可视化ETL系统

一、DataX 简介 DataX 是阿里云 DataWorks 数据集成的开源版本&#xff0c;主要就是用于实现数据间的离线同步。DataX 致力于实现包括关系型数据库&#xff08;MySQL、Oracle 等&#xff09;、HDFS、Hive、ODPS、HBase、FTP 等各种异构数据源&#xff08;即不同的数据库&#x…

找单身狗(C语言)

题目叙述&#xff1a; 一个数组中只有两个数字是出现一次&#xff0c;其他所有数字都出现了两次。 编写一个函数找出这两个只出现一次的数字。 例如&#xff1a; 数组的元素是&#xff1a;1&#xff0c;2&#xff0c;3&#xff0c;4&#xff0c;5&#xff0c;1&#xff0c;…

从零开始手写mmo游戏从框架到爆炸(八)— byte数组传输

导航&#xff1a;从零开始手写mmo游戏从框架到爆炸&#xff08;零&#xff09;—— 导航-CSDN博客 Netty帧解码器 Netty中&#xff0c;提供了几个重要的可以直接使用的帧解码器。 LineBasedFrameDecoder 行分割帧解码器。适用场景&#xff1a;每个上层数据包&#xff0c;使…