帮助有一定计算机基础的人 快速复习并重新拾起C语言基础

news2024/11/15 11:19:43

这里写目录标题

    • 1.C语言程序举例
    • 2.详解C语言程序结构
      • 1)#include
      • 2)main 函数:
      • 3){} 括号,程序体和代码块
      • 4)注释
      • 5)print 函数
      • 6)return 语句
    • 3 C程序的编译步骤是怎样?
    • 4.数据的表现形式
      • 1.常量
      • 2.标识符
      • 3.变量
      • 4.常变量
      • 5.sizeof运算符的使用

1.C语言程序举例

#include <stdio.h> //编译预处理指令 

int main() //主程序的入口 
{ 
 //这是第一个 C 语言代码 这是注释 
 printf("hello world\n"); //标准输出语句 
 return 0; //函数执行完毕时的返回值 
}

2.详解C语言程序结构

一个源文件程序中包含以下三个部分:
①预处理指令。如#include<stdio.h>,C 编译系统对程序进行编译前,首先由预处理器
对预处理指令进行预处理操作,对于#include<stdio.h>来说就是将 stdio.h 文件的内容读取
进来,替代#include<stdio.h>。
②全局声明。即在函数外声明数据。
③函数的定义。即函数具体实现的功能。

代码分析:

1)#include

#include 的意思是头文件包使用 C 语言库函数需要提前包含库函数对应的头文件,如

这里使用了 printf()函数,需要包含 stdio.h 头文件,#include<stdion.h>代表包含这个头文件。

使用 C 语言库函数需要提前包含库函数对应的头文件,如这里使用了 printf()函数,需要包含 stdio.h 头文件 。

注意:****#include<>#include “”的区别:

<>通常是包含系统的头文件(标准头文件),””通常是包含自定义头文件。

2)main 函数:

main 函数是 C 语言程序的入口,程序是从 main 函数开始执行

一个完整的 C 语言程序,是有且只能有一个 main()函数。

main 函数是 C 语言程序的入口,程序是从 main 函数开始执行。

3){} 括号,程序体和代码块

{}叫代码块,一个代码块内部可以有一条或者多条语句。

C 语言每句可执行代码都是";"分号结尾。

所有的#开头的行,都代表预编译指令,预编译指令行结尾是没有分号的。

所有的可执行语句必须是在代码块里面。

4)注释

//叫行注释,注释的内容编译器是忽略的,注释主要的作用是在代码中加一些说明和注释,这样有利于代码的阅读。

/* */叫块注释

5)print 函数

printf 是 C 语言库函数,功能是向标准输出设备输出一个字符。

printf(“hello world\n”);//\n 的意思是回车换行。

6)return 语句

return 代表函数执行完毕。

如果 main 定义的时候前面是 int,那么 return 后面就需要写一个整数;如果 main 定

义的时候前面是 void,那么 return 后面什么也不需要写。

在 main 函数中 return 0 代表程序执行成功,return -1 代表程序执行失败。

int main()和 void main()在 C 语言中是一样的,但 C++只接受 int main 这种定义方式。

3 C程序的编译步骤是怎样?

大致分为4步

①预处理:宏定义展开、头文件展开、条件编译等,同时将代码中的注释删除。
②编译:检查语法,将预处理后文件编译生成汇编文件。
③汇编:将汇编文件生成目标文件(二进制文件)。
④链接:C 语言编写的程序是需要依赖各种库的,所以编译之后要把库链接到最终的**

可执行程序中去。

数据类型、运算符及表达式

4.数据的表现形式

①常量 ------ 其值在运行过程中不能改变的量

②变量 ------ 用来存放变量,即变量的值

③常变量 ------ 其值不能改变的变量

④标识符 ------ 给对象起名字

1.常量

在程序运行过程中,其值不能被改变的量 。

在这里插入图片描述

常量的几点注意事项

①字符常量有且仅包括一个字符,且用单引号表示。

②字符串常量可以包括全部字符,用双引号表示。

③转义字符是以’'开头的特殊的字符序列,常用的总结如下:

在这里插入图片描述

2.标识符

1.定义

用来给变量、符号常量、函数、数组、类型等命名的有效字符序列。

2.命名规范

①只能由字母、数字、下划线三种符号组成。

②必须以字母或者下划线开头。

③不能使用关键字

3.练习:判断是否是合法标识符

sum、int、_age、#33、2Y50

3.变量

1.在运行过程中其值可以被改变。

2.变量必须先定义后使用。int b = 2; //变量的初始化

b = 2; //报错,变量 a 没有定义

3.变量定义的格式。

数据类型 变量名 = 变量值

例如定义一个整型变量 sum, int sum = 0;

4.变量的实质。

以 int b=2 为例,

在这里插入图片描述

5.变量的特点

①变量在编译时系统会给其分配相应的内存空间。

②可以通过变量名或者地址访问内存空间。

4.常变量

1.定义

运行期间其值不会改变的变量。

2.格式

const 数据类型 变量名 = 变量值

如 const int a = 3;

注意事项

1.符号常量变量的区别

①符号常量是不占内存的,只是一个临时符号,预编译完成后就消失了。

②符号常量用大写表示。

2.常变量常量的异同

①常变量具有变量的基本属性,即有类型、占存储单元。

②不允许改变其值。

相应的进制在 C 语言中程序示例(补充)

在这里插入图片描述

计算机补码的使用实践(补充)

#include <stdio.h> 

int main() 

{ 

//如果使用二进制、八进制、十六进制,即为补码表示。 

char a = 0x85; 

printf("a=%d\n",a); //补码转原码 

//如果用 10 进制表示,即站在用户的角度,原码表示。 

char b = -15; 

printf("b=%x\n", b); //原码转补码 

return 0; 

}

5.sizeof运算符的使用

sizeof 不是函数,所以不需要包括任何头文件,它的功能是计算一个数据类型的大小,单位为字节。

sizeof 的返回值为 size_t

size_t 类型在 32 位操作系统下是unsigned int,是一个无符号整数。

在这里插入图片描述

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

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

相关文章

【Go基础】面向对象和反射机制

文章目录一、面向对象1. 面向对象的概念2. 构造函数3. 继承与重写4. 泛型二、反射1. 反射介绍2. 反射的基础数据类型3. 反射API3.1 reflect.Type①如何得到Type②指针Type转为非指针Type③获取struct成员变量的信息④获取struct成员方法的信息⑤获取函数的信息⑥判断类型是否实…

『 MySQL篇 』:MySQL表的CURD操作

&#x1f4e2; MySQL 系列专栏持续更新中 … MySQL专栏 ​ 目录 目录一、SQL语句- SQL通用语法- 注释- SQL语句分类二、 基础表操作- 创建表- 查看库中的表- 查看表结构- 删除表- 重命名表三、MySQL 中的增删查改操作- 增加&#xff08;insert语句&#xff09;- 查询(select语…

CSS 使用 @font-face 引入外部字体

CSS 使用 font-face 引入外部字体下载所需字体到本地把下载字体文件放入font文件夹里定义字体引用字体结果&#x1f62c;没有退路时&#xff0c;潜能就发挥出来了 CSS 中使用开源字体 得意黑 得意黑的字体是真的好看 ✨推荐使用 下载所需字体到本地 这里介绍一款不错的中文字…

Shiro:核心组件、配置类、多Realm场景、自定义拦截器、实战场景

目录Shiro 的核心组件Shiro 认证流程Shiro 授权流程单 RealmShiro 登陆认证 SimpleAuthenticationInfo 对象多 RealmShiroConfigShiro过滤器配置 ShiroFilterFactoryBeanShiro自定义过滤器Shiro 过滤器执行链路梳理代码自取层级结构Login.javaBearerTokenRealm.javaShiroRealm.…

桶排序详细说明及实现-python

前言&#xff1a; 说到桶排序&#xff0c;那必定要有桶&#xff0c;那么桶的作用是什么呢&#xff1f;桶的作用就是将序列分为若干份放到桶中&#xff0c;每个桶中能装入的数量范围是一定的&#xff0c;只有最后一个桶可以设置装入很多。这是因为当分的桶一定时&#xff0c;前面…

SpringMVC-基础入门

文章目录SpringMVC1&#xff0c;SpringMVC概述2&#xff0c;SpringMVC入门案例2.1 需求分析2.2 案例制作步骤1:创建Maven项目步骤2:补全目录结构步骤3:导入jar包步骤4:创建配置类步骤5:创建Controller类步骤6:使用配置类替换web.xml步骤7:配置Tomcat环境步骤8:启动运行项目步骤…

【软考】系统集成项目管理工程师(十五)项目采购管理

一、项目采购管理概述二、项目采购管理子过程1. 编制采购管理计划2. 实施采购3. 控制采购4. 结束采购三、招投标1. 招标人的权利和义务2. 招标代理机构的权利和义务3. 招标方式和招投标程序4. 相关的法律责任一、项目采购管理概述 采购意味着从外界来源获得商品或服务,采购一…

Vue3组件初始化流程分析

本文主要来分析 vue3 组件的初始化(基于runtime-core(核心运行时)包)&#xff0c;将从createApp、mount 等常用 API 入手来分析组件的挂载、普通元素的挂载流程。 createApp 1、创建一个应用实例。使用方式如下: import { createApp } from vue import App from ./App.vueco…

进制转换(二进制、八进制、十进制、十六进制)超详细版

今天来总结一下各种进制转换问题&#xff0c;详细齐全易于理解&#xff0c;希望对你有帮助哦&#xff01; 各种进制之间的相互转换 先从我们最熟悉的十进制入手吧&#xff0c;其他进制与十进制的转换方法都是一样的。 整型有4种进制形式&#xff1a; 1.十进制&#xff1a; …

[ChatGPT]

最近hatGPT火爆全宇宙&#xff0c;几乎所有圈内人都在谈论这个美国人工智能公司OpenAI发布免费机器人对话模型ChatGPT&#xff08;GPT-3.5系列&#xff09;&#xff0c;模型中首次采用RLHF&#xff08;从人类反馈中强化学习&#xff09;方式。模型目前处于测试阶段&#xff0c;…

Windows 服务器刷题(2)(带答案)

作者简介&#xff1a;一名云计算网络运维人员、每天分享网络与运维的技术与干货。 座右铭&#xff1a;低头赶路&#xff0c;敬事如仪 个人主页&#xff1a;网络豆的主页​​​​​​ 目录 前言 一.刷题 前言 本章将会讲解Windows服务器刷题&#xff08;2&#xff09; 一…

新年礼物已收到!2022 Apache IoTDB Commits 数量排名 3/351!

社区喜报&#xff01;据 The Apache Software Foundation 官方 Projects Statistics&#xff08;项目信息统计网站&#xff09;的实时数据显示&#xff0c;Apache IoTDB 在过去 12 个月&#xff08;即 2022 年度&#xff09;共发表 6829 Commits&#xff0c;排名 2022 年度 Apa…

C++ Primer笔记——默认移动操作、移动迭代器、左右值引用成员函数、标准库仿函数、function包装器

目录 一.P476 合成的移动操作 二.P480 移动迭代器 三.P483 右值和左值引用成员函数 四.P510 标准库定义的仿函数 五.P512 标准库function类型&#xff08;包装器&#xff09; 一.P476 合成的移动操作 什么时候会有默认的移动构造和移动赋值函数&#xff0c;需满足以下几点…

Java设计模式-中介者模式Mediator

介绍 中介者模式&#xff08;Mediator Pattern&#xff09;&#xff0c;用一个中介对象来封装一系列的对象交互。中介者使各个对象不需要显式地相互引用&#xff0c;从而使其耦合松散&#xff0c;而且可以独立地改变它们之间的交互。中介者模式属于行为型模式&#xff0c;使代…

linux搭建webapp实战

首先介绍下linux&#xff0c;linux因其开源&#xff0c;定制化高&#xff0c;安全等原因&#xff0c;成为了目前web应用部署首选的操作系统&#xff0c;linux操作系统有很多版本&#xff0c;常见的有centos&#xff0c;debian&#xff0c;RHLE&#xff0c;redhat&#xff0c;乌…

【Linux】gcc/g++编译器、make/Makefile自动化构建工具

作者&#xff1a;小卢 专栏&#xff1a;《Linux》 喜欢的话&#xff1a;世间因为少年的挺身而出&#xff0c;而更加瑰丽。 ——《人民日报》 目录 1.gcc/c的概念&#xff1a; 2.程序编译过程详解&#xff1a; 2.1程序编译过程&#xff1a; 2.…

微电网(风、光、储能、需求响应)【Simulink 仿真实现】

目录 1 展现 2 典型几个介绍 2.1 采用PR的三相逆变器电压控制 2.2 太阳能直流微电网系统 2.3 主电网故障时的交流微电网性能 2.4 混合光伏、双馈发电和电池能源的微电网集成 3 写在后面 4 完整资源 1 展现 随便打开一个&#xff0c;就以第一个&#xff08;采用PID的三…

【GD32F427开发板试用】macOS/Linux系统开发环境搭建(开发、编译、烧录、调试)

本篇文章来自极术社区与兆易创新组织的GD32F427开发板评测活动&#xff0c;更多开发板试用活动请关注极术社区网站。作者&#xff1a;HonestQiao 我日常的工作环境使用的是macOS系统或者Linux系统&#xff0c;万不得已才使用Windows。 GD32官方提供了Keil MDK-ARM和IAR两款工具…

如何使用Dx命令将jar打包成Dex,需要使用D8命令

使用dx打包的完整命令&#xff0c;将D:\ssh1.0.jar打包成MyClass.dex&#xff0c;MyClass.dex将会输出在当前CMD命令窗口的目录下。dx --dex --no-strict --min-sdk-version26 --outputMyClass.dex D:\ssh1.0.jar运行结果&#xff1a;不要使用dx命令&#xff0c;打出来的dex可以…

NestJS 项目实战 技术选型 (文末附视频)

前言 通过上一章的学习&#xff0c;我们了解了网关系统&#xff0c;并且针对要做的功能做了项目架构设计与需求拆解。 那在一个项目正式开发之前&#xff0c;我们还需要做一个技术调研&#xff0c;从开发框架、使用的工具、数据库等等进行一系列的预研&#xff0c;避免在业务…