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.运行

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)…

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…

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

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

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

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

spring-security SecurityContextHolder

翻译版本【spring-security 6.2.1】SecurityContextHolder SecurityContextHolder Spring Security身份验证模型的核心是SecurityContextHolder。它包含SecurityContext。 SecurityContextHolder是Spring Security存储身份验证详细信息的地方。Spring Security并不关心Secur…

C++ 动态规划 状态压缩DP 蒙德里安的梦想

求把 NM 的棋盘分割成若干个 12 的长方形&#xff0c;有多少种方案。 例如当 N2&#xff0c;M4 时&#xff0c;共有 5 种方案。当 N2&#xff0c;M3 时&#xff0c;共有 3 种方案。 如下图所示&#xff1a; 2411_1.jpg 输入格式 输入包含多组测试用例。 每组测试用例占一行…

OCR文本纠错思路

文字错误类别&#xff1a;多字 少字 形近字 当前方案 文本纠错思路 简单&#xff1a; 一、构建自定义词典&#xff0c;提高分词正确率。不在词典中&#xff0c;也不是停用词&#xff0c;分成单字的数据极有可能是错字&#xff08;少部分可能是新词&#xff09;。错字与前后的…

uniapp设置不显示顶部返回按钮

一、pages文件中&#xff0c;在相应的页面中设置 "titleNView": {"autoBackButton": false} 二、对应的页面文件设置隐藏元素 document.querySelector(.uni-page-head-hd).style.display none

计算机网络实验四

实验四 VLAN划分与配置 1、实验目的 • 理解并掌握Port Vlan的配置方法 • 理解并掌握掌握跨交换机实现VLAN的配置方法 2、实验设备 &#xff08;1&#xff09;实验内容1&#xff1a;交换机端口隔离—Port Vlan的配置 以太网交换机一台笔记本电脑一台PC机两台配置电缆、网…

收藏:相当大赞的来自 Agilean产品团队的2篇关于重塑敏捷组织的绩效管理的文章

Agilean产品团队&#xff0c;是吴穹博士领导下最近在国内敏捷界很厉害的产品&#xff0c;今天看到两篇相当不错的说敏捷组织的上下篇文章&#xff0c;分享下&#xff0c;地址是&#xff1a;6个原则15项举措&#xff0c;重塑敏捷组织的绩效管理&#xff08;上&#xff09; 6个原…