再学C语言3:C语言概述(1)

news2024/11/29 12:35:54

简单的示例程序:

#include <stdio.h>

int main(void)
{
    int num;
    num = 1;
    
    printf("I am a simple computer.\n");
    printf("My favorite number is %d because it is first.\n", num);
    return 0;
}

运行结果:

C程序剖析:

一、#include指示和头文件

预处理:C编译器在编译之前要对源代码做一些准备工作,称为预处理(preprocessing)

#include语句:C预处理中的一个指令

stdio.h文件:左右C语言编译包中的一个标准部分,包含有关输入和输出函数的信息,可以直接供编译器使用

头文件包括了建立最终的可执行程序时编译器需要用到的信息,定义常量、说明函数名及如何使用,但是函数的实际代码通常被放在一个预编译代码的库文件中,而不在头文件中

编译器的链接部分负责根据头文件找到所需代码,头文件指引编译器把程序正确组合在一起

C语言的一个基本设计原则是避免不必要的成分

二、main()函数

一个C程序(不考虑个别例外的情况)总是从main()函数开始执行

函数的返回类型和形参

int main(void)是标准写法,main()或者void mian()等形式并不被最新的标准所允许

三、注释

{
    ....
}

注释的目的:使人们更容易理解程序代码

注释的两种风格:

/* 第一种风格的注释 */

// 第二种风格的注释

四、花括号,程序体和代码块

所有的C函数都用花括号表示函数体的开始和结束

五、声明语句(declaration)

int num;

声明语句引导编译器为变量在内存中分配合适的存储空间

C语言中所有变量都必须在使用之前定义

传统上,C语言要求必须在一个代码块的开始处声明变量,在这之前不允许任何其他语句;C99允许把声明放在代码块中的任何位置;但是很多编译器都不支持C99这一规则

数据类型:把变量声明为相应的类型是计算机正确存储、获取和解释该数据的基本前提

尽量使用有意义的变量名,如果名字不能表达清楚,可以用注释解释变量所代表的含义

能够使用的字符的数量与C语言的不通实现有关,即编译器所采用的标准

若采用超过编译器规定的字符数量,编译器不会识别超出的部分

可供使用的字符:小写字母、大写字母、数字、下划线;但是第一个字符必须是字母或下划线

操作系统和C库通常使用以一个或两个下划线开始的名字,因此开发人员最好避免这种用法,以防止出现名字的混乱

C语言的名字是区分大小写的

六、赋值语句(assignment)

num = 1;

赋值语句赋值的顺序是从右到左

声明语句为变量分配空间;赋值语句为变量所在空间存储一个值

七、printf()函数

转义字符:通常用于代表难以表达的或是无法键入的字符

八、return语句

return语句(返回语句)是程序的最后一个语句

九、小结——简单程序的结构

程序由一个或多个函数组成,其中必须有一个名为main()的函数

函数的描述由函数头和函数体组成:函数头包括预处理语句和函数名;函数体是由花括号包含的一系列语句组成,每个语句以分号结束

/**** 函数头 ****/
#include <stdio.h>                    // 预处理指令
int main(void)                        // 带有参数的函数名
/**** 函数体 ****/
{
    int q;                            // 声明语句
    q = 1;                            // 赋值语句
    printf("%d is neat.\n", q);       // 函数语句
    return 0;
}

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

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

相关文章

JEC-QA:A Legal-Domain Question Answering Dataset 论文阅读

文章目录介绍相关工作Open QA数据集实验检索策略baseline实验结果数据来源&#xff1a;中国国家司法考试模型准确率 28%&#xff0c;专业人士可以达到81%&#xff0c;非专业人士可以达到64%数据集下载链接&#xff1a;http://jecqa.thunlp.org/代码链接&#xff1a;https://git…

web前端大作业(基于HTML+CSS+JavaScript仿阴阳师游戏官网首页作业制作)

&#x1f389;精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业…

1780. 判断一个数字是否可以表示成三的幂的和

目录题目深搜&#xff08;不超时&#xff09;动态规划&#xff08;超时写法&#xff09;二维空间优化&#xff08;一维&#xff09;题目 给你一个整数 n &#xff0c;如果你可以将 n 表示成若干个不同的三的幂之和&#xff0c;请你返回 true &#xff0c;否则请返回 false 。 对…

海德汉机床联网

一、设备信息确认 1、确认型号 数控面板拍照确认&#xff1a; 此系统为&#xff1a;海德汉530操作系统 还有一种情况是面板无任何版本信息&#xff0c;这时就需要进入系统里面再确认。 2、确认通讯接口 打开电器柜后既可看到网口。编号X26 3、确认数控系统软件版本(以620为…

Java+Swing实现自助取款机(ATM)系统-TXT存储数据

JavaSwing实现自助取款机ATM系统-TXT存储数据一、系统介绍1.系统功能2.环境配置3.工程截图二、系统展示1.登录页1.1登录成功2.取款2.1取款成功3.存款3.1 存款成功4.转账5.余额查询6.退出系统三、部分代码AccountDao.javaLoginFrame.javaAccount.java四、其他获取源码一、系统介…

rocketmq源码-producer发送消息

前言 这篇笔记&#xff0c;记录producer发送消息的相关源码 我们以最简单的demo为例 public static void main(String[] args) throws MQClientException, InterruptedException {DefaultMQProducer producer new DefaultMQProducer("please_rename_unique_group_name&…

去哪儿是如何做到大规模故障演练的?|TakinTalks

# 一分钟精华速览 #混沌工程作为一种提高技术架构弹性能力和容错能力的复杂技术手段&#xff0c;近年来讨论声音不断&#xff0c;相比在分布式系统上进行随机的故障注入实验&#xff0c;基于混沌工程的大规模自动化故障演练&#xff0c;不仅能将“作战演习”常态化&#xff0c;…

Spring结合mybatis

目录 一、Spring结合mybatis 二、业务层添加声明式事务 1、事务的传播机制 2、事务的四大特性 3、事务的隔离级别 4、事务属性 一、Spring结合mybatis 1.创建Web工程&#xff0c;导入Spring和MyBatis的相关依赖 <!-- springmybatis整合 --><dependency><…

web渗透安全测试(靶场搭建及常见漏洞攻防)

渗透测试 渗透测试&#xff08;Penetration test&#xff09;即安全工程师模拟黑客&#xff0c;在合法授权范围内&#xff0c;通过信息搜集、漏洞挖掘、权限提升等行为&#xff0c;对目标对象进行安全测试&#xff08;或攻击&#xff09;&#xff0c;最终找出安全风险并输出测…

Denoising Diffusion Probabilistic Models简介

目录概要前向过程nice property逆向过程参数推导简化参考资料概要 Denoising Diffusion Probabilistic Model(DDPM)是一个生成模型&#xff0c;给定一个目标分布&#xff0c;学习模型以便可以从目标分布中采样。 使用马尔科夫链建模。输入是噪声&#xff0c;通过神经网络逐步去…

“乌卡时代”下,跨境电商卖家到底在焦虑什么?

三年前新冠疫情大爆发&#xff0c;现今国家全面解封&#xff0c;但形式任然不稳定&#xff0c;加之国际形势扑朔迷离&#xff0c;各国外贸瞬息万变&#xff0c;跨境电商行业面对的复杂性也随之正变得越来越高。无论是运价&#xff0c;还是爆仓&#xff0c;亦或是港口拥堵等情况…

WPF入门 第一篇 基础布局与简单样式

基础布局与简单样式 首先&#xff0c;创建WPF项目&#xff0c;在自动打开的MainWindow.xaml里面&#xff0c;找到Grid标签&#xff0c;并将它替换为&#xff1a; <Grid><Grid.RowDefinitions><RowDefinition></RowDefinition><RowDefinition>&…

【案例教程】地球科学数据(ERA5、雪深、积雪覆盖、海温、植被指数、土地利用)处理实践

【查看原文】地 球 科 学 常 见 数 据 的 处 理 实 践 技 术 应 用 在地球科学中&#xff0c;不同数据根据具体学科的特色存储为多种数据格式。在科研工作中需要将多种数据进行综合使用分析&#xff0c;因此需要寻找学习通用的数据格式解决方法&#xff0c;把研究的精力聚焦到具…

芜湖~西门子低代码最新组件首发,快来围观!

热爱低代码的小伙伴们&#xff0c;我们又见面啦~ 在与大家长达1年多时间的沟通交流中&#xff0c;我们深刻感受到大家对西门子低代码的浓厚兴趣。为了不辜负大家的厚爱&#xff0c;我们潜心研制了一批前端组件。因为随着商业化的趋势&#xff0c;越来越多的企业级产品对更好的…

web前端实训作业 html+css+javascript 水果超市网页设计实例 企业网站制作

常见网页设计作业题材有 个人、 美食、 公司、 学校、 旅游、 电商、 宠物、 电器、 茶叶、 家居、 酒店、 舞蹈、 动漫、 服装、 体育、 化妆品、 物流、 环保、 书籍、 婚纱、 游戏、 节日、 戒烟、 电影、 摄影、 文化、 家乡、 鲜花、 礼品、 汽车、 其他等网页设计题目, A…

12.7、后渗透测试--python插件执行py脚本

加载python插件&#xff1a;meterpreter >load python查看指令集&#xff1a;meterpreter >helppython执行单条语句&#xff1a;meterpreter > python_execute "import os; cdos.getcwd()" -r cd # 将os.getcwd()赋值给 cd 这个变量&#xff0c;然后用 -…

中英翻译《The number thirteen数字13》

The number thirteen 数字13 一、Pre-reading activity 阅前思考 1.Do you have a lucky number? If so, what is it? 你有幸运数字吗&#xff1f;如果有&#xff0c;是什么&#xff1f; 2.What number is next? 10, 11, 12, ____? 下一个数字是什么&#xff1f; 10、11、1…

设计模式-迭代器模式

迭代器模式UML类图 实现代码如下&#xff08;这里使用的集合是list,也可以使用其他集合这里就不一一展示了&#xff09; public interface Iterator<T> {T next();boolean hasNext(); } 复制代码 public class ConcreteIterator<T> implements Iterator<T>…

商品企划VE课程大纲

课程信息 课程受众: 高中基层管理人员、储备干部&#xff0c;项目经理&#xff0c;商品企划人员&#xff0c;研发人员 课程时间: 2天 授课方式: 理论讲座&#xff0b;实战工作坊&#xff0b;录像观赏&#xff0b;角色扮演&#xff0b;提问互动&#xff0b;分组讨论&#xff0…

Java入门教程(29)——封装

封装是面向对象三大特征之一。 文章目录1.封装的特性2.封装的作用3.访问控制符4.实例1.封装的特性 高内聚、低耦合 2.封装的作用 提高代码的安全性。提高代码的复用性。高内聚&#xff1a;封装细节&#xff0c;便于修改内部代码&#xff0c;提高可维护性。低耦合”&#xff…