C语言的基础了解(上)

张开发
2026/4/16 14:36:37 15 分钟阅读

分享文章

C语言的基础了解(上)
一.第一个代码实现1.头文件什么是头文件头文件:将C语言中的一些功能放在不同的“仓库”里当我们使用时直接从仓库中调用通常以.h结尾例如stdio.h用#include命令头文件例如#includestdio.h其中的stdio为标准输入输出当我们用printf打印和scanf读取就必须在代码开头写上这一行。2.main函数什么是 main 函数main函数是程序的核心入口不管你的代码写了 10 行还是 1 万行电脑在运行程序时第一眼找的永远是main。注意一个 C 语言项目里有且只能有一个main函数唯一性C语言框架如图#includestdio.h int main() { //代码内容 return 0; }1.int代表函数执行完后会返回一个“整数”给操作系统。2.mainmain函数。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.常见的ASCIIASCII美国信息交换标准代码为了让电脑能显示文字人类定下了一套**“密码本”**规定用哪个数字来代表哪个字符。常用的ASCII大写字母 A-Z65 - 90Z是 65 25 90小写字母 a-z97 - 122z是 97 25 122数字字符 0-948 - 579是 48 9 572.定义变量数据类型1.基础语法格式标准格式为数据类型 变量名 初始值;声明变量必须“先定义后使用”。内存分配定义时必须指定类型以便编译器确定分配多少字节如int分配 4 字节。2. 变量命名规则 (Identifier Rules)变量名须遵循以下硬性规定否则编译器会报错组成范围只能由字母a-z, A-Z、数字0-9和下划线_组成。数字限制变量名不能以数字开头例如2b是非法的b2是合法的。区分大小写Age和age是两个完全不同的变量。避开关键字不能使用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常用于函数返回或泛型指针。布尔型_BoolC99 标准引入通常配合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)最小的单位像一个开关只能表示0或1。1 字节 (Byte)由8 个比特组成。这是计算机处理数据的最小寻址单位。换算公式1 Byte 8 Bits我们平时说的手机内存 256GB指的就是字节的倍数1 KB 1024 Bytes1 MB 1024 KB1 GB 1024 MB字节数就是数据在内存中“占地面积”的大小。字节数越多能表示的数据范围通常越广或者精度越高但同时也会消耗更多的内存空间。3.常见环境下的数据类型长度对照表类型长度 (Byte)长度 (Bit)数值范围参考char18-2^7到 2^7-1short216-2^15 到 2^15int432-2^31 到 2^31-1long4/832/64-2^31 到 2^31-1/-2^63 到2^63-1long long864-2^63 到2^63-1float4321.17 *10^-38 到 3.40*10^38double8642.22*10^-308到 1.79*10^3082.无符号数据类型通过在整型关键字前加上unsigned关键字来定义是计算机中专门用来表示非负整数0 和正整数的数据类型。想象一个8 位1 字节的空间有符号 (signed char)左边第一位是“开关”0 代表正1 代表负。剩下的 7 位存数值。无符号 (unsigned char)8 位全部用来存数值没有正负之分。数值范围对照表类型关键字字节比特最小值最大值 (幂次表示)具体数值unsigned char1802^8 - 10-255unsigned short21602^16 - 10-65,535unsigned int43202^32- 10-约 42.9 亿unsigned long long86402^64 - 10-约 1.84 10^193.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。后继会补充关于进制转换的内容敬请期待。

更多文章