当前位置: 首页 > news >正文

C语言的基础了解(上)

一.第一个代码实现

1.头文件

什么是头文件?

头文件:将C语言中的一些功能放在不同的“仓库”里,当我们使用时直接从仓库中调用

通常以.h结尾,例如stdio.h,用#include命令头文件,例如#include<stdio.h>,其中

的stdio为标准输入输出,当我们用printf(打印)和scanf(读取),就必须在代码开头写上这一行。

2.main函数

什么是 main 函数?

main函数是程序的核心入口不管你的代码写了 10 行还是 1 万行,电脑在运行程序时,第一眼找的永远是main

注意:一个 C 语言项目里,有且只能有一个main函数(唯一性

C语言框架,如图:

#include<stdio.h> int main() { //代码内容 return 0; }

<1>.int:代表函数执行完后,会返回一个“整数”给操作系统。

<2>.main:main函数。

<3>.():里面可以放一些启动参数(初学时先留空)。

<4>.{ }:大括号里包围的内容就是你要电脑执行的所有指令。

<5>.return 0;通常 0 代表“一切正常”,否则可能报错。

<6>.一条语句结束后,要有英文分号(;)。

3.printf的了解

什么是printf函数?

全称是print formatted(格式化打印)。作用就是:把你想表达的数据,按照你指定的格式,显示在屏幕上。
原型:

int printf(const char *format, ...);

例如:

printf("你好");

4.常见占位符

先了解一下,以后会经常用

如图表:

占位符对应类型说明示例
%dint有符号十进制整数printf("%d", 10);// 10
%ffloat单精度浮点数(默认 6 位小数)printf("%f", 3.14);// 3.140000
%lfdouble双精度浮点数(精度更高)scanf("%lf", &d);
%cchar单个字符printf("%c", 'A');// A
%schar[]字符串(一串字符)printf("%s", "Hello");

5.简单C语言程序举例

#include <stdio.h> // 1. 【包含头文件】 int main() // 2. 【主函数入口】 { // 3. 【代码块开始】 printf("Hello world"); // 4. 【执行语句】 return 0; // 5. 【返回值】 } // 6. 【代码块结束】

注意:以上的//或者/*.....*/ ,都为注释,用来写给人看的说明文字,编译器(电脑)在处理代码时会完全忽略它们。

二.ASCII与数据类型

1.常见的ASCII

ASCII(美国信息交换标准代码):为了让电脑能显示文字,人类定下了一套**“密码本”**:规定用哪个数字来代表哪个字符。

常用的ASCII:

大写字母 A-Z65 - 90Z是 65 + 25 = 90
小写字母 a-z97 - 122z是 97 + 25 = 122
数字字符 0-948 - 57'9'是 48 + 9 = 57

2.定义变量数据类型

<1>.基础语法格式

标准格式为:数据类型 变量名 = 初始值;

  • 声明:变量必须“先定义,后使用”。

  • 内存分配:定义时必须指定类型,以便编译器确定分配多少字节(如int分配 4 字节)。


<2>. 变量命名规则 (Identifier Rules)

变量名须遵循以下硬性规定,否则编译器会报错:

  1. 组成范围:只能由字母(a-z, A-Z)、数字(0-9)和下划线(_)组成。

  2. 数字限制:变量名不能以数字开头(例如2b是非法的,b2是合法的)。

  3. 区分大小写Ageage是两个完全不同的变量。

  4. 避开关键字:不能使用C语言保留的关键字(如int,return,if,while等)。

3.数据类型

<1>.内置类型 (Built-in Types)

内置类型也称为“基本类型”或“原生类型”,是 C 语言标准直接定义好的,编译器知道如何分配内存以及如何处理它们。

核心成员:

  • 整型家族char,short,int,long,long long。

#include <stdio.h> int main() { char letter = 'A'; // 存储单个字符 char newline = '\n'; // 转义字符(换行) printf("字符: %c, ASCII码值: %d\n", letter, letter); return 0; }
#include <stdio.h> int main() { short small_num = 100; // 短整型 int count = -500; // 标准整型 long long huge_val = 100000000LL; // 长长整型 printf("整型输出: %d, %lld\n", count, huge_val); return 0; }

浮点型家族float,double,long double

#include <stdio.h> int main() { float price = 19.99f; // 单精度 double pi = 3.1415926535; // 双精度 long double precise = 1.23456L; // 扩展精度 printf("单精度: %.2f\n", price); // 保留2位小数 printf("双精度: %.10f\n", pi); // 保留10位小数 return 0; }
  • 空类型void(常用于函数返回或泛型指针)。

  • 布尔型_Bool(C99 标准引入,通常配合<stdbool.h>使用bool),判断真确,正确返回true,错误返回false。

<2>. 自定义类型 (User-defined Types)(先了解)

将不同的内置类型(或已定义的自定义类型)进行组合、封装或重命名

A. 结构体 (struct)

将不同类型的数据组合成一个整体。它是 C 语言面向对象思想的萌芽。

  • 用途:描述学生(姓名、年龄、分数)、坐标点(x, y)等。

  • 内存:各成员拥有独立的内存空间,总大小通常是成员大小之和(考虑内存对齐)。

B. 共用体 / 联合体 (union)

所有成员共享同一块内存空间。

  • 用途:节省内存,或用于处理同一数据的不同解读方式。

  • 特性:同一时刻只能存储其中一个成员的值。

C. 枚举 (enum)

定义一组命名的整型常量。

  • 用途:增强代码可读性。例如定义颜色(红色、绿色、蓝色)或星期。

D. 类型别名 (typedef)

严格来说,typedef并不是创造新类型,而是给现有类型起个“外号”。

  • 示例typedef unsigned long long uint64;之后可以用uint64代替长长的一串关键字。

三.补充内容

1.数据类型长度

<1>.数据类型的长度:是指该类型变量在内存中占据的字节数(Bytes)

重要性:决定了变量能存储数值的范围以及程序运行时的内存开销

<2>.什么是字节数

字节(Byte):是内存计量和存储的最基本单位。

计算机内部只能理解二进制(0 和 1),这一个 0 或 1 被称为比特(Bit)

  • 1 比特 (Bit):最小的单位,像一个开关,只能表示01

  • 1 字节 (Byte):由8 个比特组成。这是计算机处理数据的最小寻址单位

换算公式:1 Byte= 8 Bits

我们平时说的手机内存 256GB,指的就是字节的倍数:

  • 1 KB= 1024 Bytes

  • 1 MB= 1024 KB

  • 1 GB= 1024 MB

字节数就是数据在内存中“占地面积”的大小。字节数越多,能表示的数据范围通常越广,或者精度越高,但同时也会消耗更多的内存空间。

<3>.常见环境下的数据类型长度对照表

类型长度 (Byte)长度 (Bit)数值范围(参考)
char18-2^7到 2^7-1
short216-2^15 到 2^15
int432-2^31 到 2^31-1
long4/832/64-2^31 到 2^31-1/-2^63 到2^63-1
long long864-2^63 到2^63-1
float4321.17 *10^-38 到 3.40*10^38
double8642.22*10^-308到 1.79*10^308

2.无符号数据类型

通过在整型关键字前加上unsigned关键字来定义,是计算机中专门用来表示非负整数(0 和正整数)的数据类型。

想象一个8 位(1 字节)的空间:

  • 有符号 (signed char):左边第一位是“开关”,0 代表正,1 代表负。剩下的 7 位存数值。

  • 无符号 (unsigned char):8 位全部用来存数值,没有正负之分。

数值范围对照表

类型关键字字节比特最小值最大值 (幂次表示)具体数值
unsigned char1802^8 - 10-255
unsigned short21602^16 - 10-65,535
unsigned int43202^32- 10-约 42.9 亿
unsigned long long86402^64 - 10-约 1.84 10^19

3.sizeof关键字

计算数据类型大小sizeof(数据类型)(必须加括号)。

例如:

#include <stdio.h> int main() { // 1. 字符型 (1 字节) printf("signed char: %zu 字节\n", sizeof(signed char)); printf("unsigned char: %zu 字节\n", sizeof(unsigned char)); // 2. 短整型 (2 字节) printf("short: %zu 字节\n", sizeof(short)); printf("unsigned short: %zu 字节\n", sizeof(unsigned short)); // 3. 整型 (4 字节) printf("int: %zu 字节\n", sizeof(int)); printf("unsigned int: %zu 字节\n", sizeof(unsigned int)); // 4. 长长整型 (8 字节) printf("long long: %zu 字节\n", sizeof(long long)); printf("unsigned long long: %zu 字节\n", sizeof(unsigned long long)); printf("\n");//换行 return 0; }

注意:%zu是 C 语言中专门用来打印sizeof结果的占位符,不可以直接用%d。

后继会补充关于进制转换的内容,敬请期待。

http://www.jsqmd.com/news/622200/

相关文章:

  • MedGemma 1.5快速上手:无需专业背景,搭建个人医学知识库
  • 微前端终极指南:如何用Garfish构建企业级模块化前端架构
  • Qwen3-ForcedAligner与Dify平台集成:打造智能语音标注工作流
  • 2026年比较好的食堂外包托管/员工食堂外包企业案例汇总 - 行业平台推荐
  • Matlab科学计算加速:集成Nanbeige 4.1-3B实现算法思路验证与代码转换
  • Luban表格配置进阶:从基础类型到复杂数据结构的实战指南
  • 2026年靠谱的柜门开合双阻尼铰链/开门缓冲关门阻尼双阻尼铰链/打开缓冲双阻尼铰链品牌厂家推荐 - 行业平台推荐
  • 2026年质量好的单极滑触线/钢体滑触线/单极安全滑触线/刚体滑触线厂家选择参考建议 - 行业平台推荐
  • 使用vLLM部署Qwen3 Reranker系列模型
  • 5分钟搞定Qwen3-ASR部署:小白也能轻松搭建语音识别服务
  • 基于 Vue + TS + Ant Design Vue 实现精细化菜单按钮权限授权组件昧
  • DuckDB 1.4.3 LTS:轻量级分析型数据库的新选择
  • EasyAnimateV5完整使用流程:从图片准备到视频输出的全步骤
  • Acunetix WVS 13实战:如何高效扫描企业网站漏洞并生成专业报告
  • 2026年知名的分仓缝变形缝/屋面变形缝/铠甲缝变形缝/内墙变形缝用户口碑认可厂家 - 行业平台推荐
  • Qwen3.5-4B-Claude推理模型入门必看:中文问答+分步解题+代码生成全解析
  • SourceGit终极指南:轻松驾驭跨平台Git图形化客户端
  • Linux内核中的块设备驱动详解
  • 深入解析AutoTokenizer.from_pretrained:参数配置与实战应用
  • BERT中文模型实战指南:从零开始搭建智能文本分类系统
  • 2026年热门的空气型母线槽/密集型母线槽/铝基动力母线槽新厂实力推荐(更新) - 行业平台推荐
  • AI工程化困局破冰时刻:AISMM发布背后,是20年AI系统研发经验沉淀的终极凝练
  • 大麦网自动抢票Python脚本:5步实现高成功率智能购票系统
  • 2026年靠谱的电动喷泵动力总成/东莞冲浪板电动喷泵厂家推荐与采购指南 - 行业平台推荐
  • 2026年质量好的透明眼影盒/磁吸式眼影盒信誉优质供应参考(可靠) - 行业平台推荐
  • DAMOYOLO-S入门必看:置信度阈值调优与检测精度实测
  • LangChain 源码剖析-消息类详解(Messages)
  • STM32裸机开发进阶:时间片轮询 vs 前后台,你的项目到底该选谁?(附对比实验)
  • UniApp+Vue3项目升级Unocss 0.60踩坑记:手把手教你降级到0.58解决ESM报错
  • 2026年评价高的青花椒油/汉源花椒油/无添加花椒油厂家质量参考评选 - 行业平台推荐