C语言高效学习、提升方法

news2024/12/23 22:27:28

前言

已经用了十多年的C语言,回头看怎么学习、提升最快呢?个人觉得还是要从框架上去着手学习,用全局眼光去看、去学,主要是三部分:关键字及基本语法、重点功能点及标准库函数;只要把这三部分基本搞懂了,剩下就就是去刻意练习与项目实践,更熟练也就更精通,也就能写出架构更合理、更精妙的程序~

一.关键字及基本语法学习

1.数据类型关键字:

int:整型

char:字符型

float:单精度浮点型

double:双精度浮点型

short:短整型

long:长整型

signed:有符号

unsigned:无符号

_Bool:布尔型(C99标准)

2.控制流关键字:

if:条件语句

else:条件语句(与if配对使用)

switch:选择语句

case:选择语句的分支标记

default:选择语句的默认分支

while:循环语句

do:循环语句(与while配对使用)

for:循环语句

goto:无条件跳转

break:跳出循环或switch语句

continue:结束当前循环,进入下一次循环

3.存储类关键字:

static:静态存储期

extern:外部变量和函数声明

4.函数和作用域关键字:

void:表示无类型或函数无返回值

return:函数返回语句

sizeof:计算对象或类型大小

5.其他关键字:

const:定义常量

volatile:告诉编译器不要优化这个变量

struct:定义结构体类型

union:定义联合体(共用体)类型

enum:定义枚举类型

typedef:为数据类型定义别名

二.重点功能学习

  指针的运用;

  函数的编写及运用;

  结构体的使用;

三.库函数学习

1.C语言标准库主要包括以下几个部分的函数:

2.主要库函数如下

数学函数:

sin:正弦函数

cos:余弦函数

tan:正切函数

pow:幂函数

sqrt:平方根函数

fabs:浮点数的绝对值函数

abs:整数的绝对值函数

字符串处理函数:

strlen:计算字符串长度

strcpy:字符串复制

strcat:字符串连接

strcmp:字符串比较

strstr:查找子串

strtok:分割字符串

字符处理函数:

isalpha:判断字符是否为字母

isdigit:判断字符是否为数字

isalnum:判断字符是否为字母或数字

tolower:将大写字母转换为小写

toupper:将小写字母转换为大写

文件操作函数:

fopen:打开文件

fclose:关闭文件

fread:从文件中读取数据

fwrite:向文件中写入数据

fgets:从文件中读取一行

fputs:向文件中写入一行

I/O函数:

scanf:从标准输入读取格式化的数据

printf:向标准输出打印格式化的数据

gets:从标准输入读取一行(不推荐使用,因为不检查缓冲区溢出)

puts:向标准输出打印一行和一个换行符

存储管理函数:

malloc:动态内存分配

calloc:动态内存分配并初始化

realloc:调整已分配内存的大小

free:释放已分配的内存

时间和日期函数:

time:获取当前时间(以秒为单位)

localtime:将时间转换为本地时间格式

strftime:将时间格式化为字符串

其他:

rand 和 srand:用于生成随机数

exit:退出程序

assert:断言,用于调试

3.推荐一个c语学习网站

可以学习基本的c语法,同时可以方便的查看c库函数及应用方法:

http://www.w3cmap.com/cprogramming/c-tutorial.html  

2.主要库函数如下

数学函数:

sin:正弦函数

cos:余弦函数

tan:正切函数

pow:幂函数

sqrt:平方根函数

fabs:浮点数的绝对值函数

abs:整数的绝对值函数

字符串处理函数:

strlen:计算字符串长度

strcpy:字符串复制

strcat:字符串连接

strcmp:字符串比较

strstr:查找子串

strtok:分割字符串

字符处理函数:

isalpha:判断字符是否为字母

isdigit:判断字符是否为数字

isalnum:判断字符是否为字母或数字

tolower:将大写字母转换为小写

toupper:将小写字母转换为大写

文件操作函数:

fopen:打开文件

fclose:关闭文件

fread:从文件中读取数据

fwrite:向文件中写入数据

fgets:从文件中读取一行

fputs:向文件中写入一行

I/O函数:

scanf:从标准输入读取格式化的数据

printf:向标准输出打印格式化的数据

gets:从标准输入读取一行(不推荐使用,因为不检查缓冲区溢出)

puts:向标准输出打印一行和一个换行符

存储管理函数:

malloc:动态内存分配

calloc:动态内存分配并初始化

realloc:调整已分配内存的大小

free:释放已分配的内存

时间和日期函数:

time:获取当前时间(以秒为单位)

localtime:将时间转换为本地时间格式

strftime:将时间格式化为字符串

其他:

rand 和 srand:用于生成随机数

exit:退出程序

assert:断言,用于调试

3.推荐一个c语学习网站

可以学习基本的c语法,同时可以方便的查看c库函数及应用方法:

http://www.w3cmap.com/cprogramming/c-tutorial.html  

2.主要库函数如下

数学函数:

sin:正弦函数

cos:余弦函数

tan:正切函数

pow:幂函数

sqrt:平方根函数

fabs:浮点数的绝对值函数

abs:整数的绝对值函数

字符串处理函数:

strlen:计算字符串长度

strcpy:字符串复制

strcat:字符串连接

strcmp:字符串比较

strstr:查找子串

strtok:分割字符串

字符处理函数:

isalpha:判断字符是否为字母

isdigit:判断字符是否为数字

isalnum:判断字符是否为字母或数字

tolower:将大写字母转换为小写

toupper:将小写字母转换为大写

文件操作函数:

fopen:打开文件

fclose:关闭文件

fread:从文件中读取数据

fwrite:向文件中写入数据

fgets:从文件中读取一行

fputs:向文件中写入一行

I/O函数:

scanf:从标准输入读取格式化的数据

printf:向标准输出打印格式化的数据

gets:从标准输入读取一行(不推荐使用,因为不检查缓冲区溢出)

puts:向标准输出打印一行和一个换行符

存储管理函数:

malloc:动态内存分配

calloc:动态内存分配并初始化

realloc:调整已分配内存的大小

free:释放已分配的内存

时间和日期函数:

time:获取当前时间(以秒为单位)

localtime:将时间转换为本地时间格式

strftime:将时间格式化为字符串

其他:

rand 和 srand:用于生成随机数

exit:退出程序

assert:断言,用于调试

3.推荐一个c语学习网站

可以学习基本的c语法,同时可以方便的查看c库函数及应用方法:

http://www.w3cmap.com/cprogramming/c-tutorial.html  

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

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

相关文章

AD | Altium Designer(原理图设计、电路仿真、PCB绘图)汉化版

Altium Designer(原理图设计、电路仿真、PCB绘图) 通知公告 Altium Designer(AD)是一种功能强大的电子设计自动化(EDA)软件。它主要用于设计和开发电子产品,如电路板(PCB)、集成电路(IC)和嵌入式系统。AD提供了完整的设计工具套件,包括原理图设计、PCB布局、仿真、设…

蓝桥杯单片机省赛——第八届“基于单片机的电子钟程序设计与调试”程序部分

往期回顾 第三届蓝桥杯单片机省赛 第四届蓝桥杯单片机省赛 第五届蓝桥杯单片机省赛 第六届蓝桥杯单片机省赛 第七届蓝桥杯单片机省赛 文章目录 往期回顾一、前期准备二、代码详情1.基础代码蜂鸣器/继电器/led/定时器之类的代码 2.按键详解按键写法讲解 3.驱动的处理驱动写法讲…

【前端篇】微信小程序ActionSheet封装 -- 封装特性,开发只需要关注功能

大家好啊,这次来分享一下小程序开发的一个使用封装。 背景 先来看下什么是ActionSheet,参考下图(来源:豆流便签) 参考原生代码实现: wx.showActionSheet({itemList: ["action1", "actio…

万万没想到,延缓帕金森病进展的“玄机”竟然就在腿上?【北京仁爱堂】

帕金森病患者的腿部变化,其实可以反应出很多问题。例如行走的变化问题、步态的异常等问题,可以反应病情轻重程度。而通过保持腿部肌肉活动的状态,也可以使帕金森病的症状得到一定的缓解,甚至有助于防止病情恶化。 帕金森病腿部变…

C++类和对象上篇

🐇 🔥博客主页: 云曦 📋系列专栏:[C] 💨路漫漫其修远兮 吾将而求索 💛 感谢大家👍点赞 😋关注📝评论 文章目录 📙前言📙1、面向过程…

Java创建并遍历N叉树(前序遍历)

力扣 title589:N叉树的前序遍历 给定一个 n 叉树的根节点 root ,返回 其节点值的 前序遍历 。 n 叉树 在输入中按层序遍历进行序列化表示,每组子节点由空值 null 分隔(请参见示例)。 思路: 1.初始化时…

C++_set和map的学习

1. 关联式容器 STL中的容器有序列式容器和关联式容器。 其中 vector 、 list 、 deque 、 forward_list(C11)就是序列式容器, 因为其底层为线性序列的数据结构,里面 存储的是元素本身 关联式容器 也是用来存储数据的,与序列式容器不同的是&am…

企业办公网络安全为何每个企业都要重视

随着互联网的持续发展,当前大量企业通过网络将集团总部与各分公司/厂区结合起来,便捷的沟通和共享方式大大提高了企业的生产力和工作效率,如何能够保障一个稳定、安全、便捷的整体网络成为企业IT建设的重要课题。对大量企业用户进行调研后发现…

万界星空科技商业开源MES+项目合作+商业开源低代码平台

今天我想和大家分享的是一套商业开源的 MES制造执行管理系统带源码。对于制造业而言,MES 是一个至关重要的系统,它可以帮助企业提高生产效率、优化资源利用、提高产品质量,从而增强市场竞争力。 什么是 MES? MES 是指通过计算机技…

llama-factory/peft微调千问1.5-7b-chat

目标 使用COIG-CQIA数据集和通用sft数据集对qwen1.5-7b-chat进行sft微调,使用公开dpo数据集进行dpo对齐。学习千问的长度外推方法。 一、训练配置 使用Lora方式, 将lora改为full即可使用全量微调。 具体的参数在 该框架将各个参数、训练配置都封装好了,直接使用脚本,将数…

unity项目《样板间展示》开发:菜单界面

unity项目《样板间展示》开发:菜单界面 前言UI菜单创建逻辑实现结语 前言 这是这个项目demo教程的最后一节,这节是菜单界面部分的创建 UI菜单创建 创建一个新的场景,在Scene文件中右键选择Create->Scene,创建新的场景 在场景…

【Linux】创建/扩容swap交换空间swap优化

一、当前交换空间大小 目前交换空间大小为2G 二、创建swap交换空间 #创建大小为2G的交换空间 [roothadoop01 data1]# dd if/dev/zero of/data1/swapfile bs1M count2048 #将文件设置为交换空间 [roothadoop01 data1]# mkswap /data1/swapfile #启用交换空间 [roothadoop01 da…

ElasticSearch教程入门到精通——第一部分(基于ELK技术栈elasticsearch 8.x新特性)

ElasticSearch教程入门到精通——第一部分(基于ELK技术栈elasticsearch 8.x新特性) 1. ElasticSearch安装(略)2. ElasticSearch基础功能2.1 索引操作2.1.1 创建索引2.1.2 Head 索引2.1.3 查询索引2.1.3.1 查询单独索引2.1.3.2 查询…

智能产品信息模型-控制信息模型

数字化的核心是数字化建模,为一个事物构建数字模型是一项十分复杂的工作。不同的应用场景,对事物的关注重点的不同的。例如,对于一个智能传感器而言,从商业的角度看,产品的信息模型中应该包括产品的类型,名…

Vue 组件的三大组成部分

Vue 组件通常由三大组成部分构成:模板(Template)、脚本(Script)、样式(Style) 模板部分是组件的 HTML 结构,它定义了组件的外观和布局。Vue 使用基于 HTML 的模板语法来声明组件的模…

如何维持CISSP证书:附免费获取CPE学分的16个官方渠道

CISSP 证书只有三年有效期(如2023.11-2026.10),需要每年维护才能续证。持证者需要持续获取 CPE 学分来维持证书,否则证书到期后将失效。本文主要介绍维护CISSP证书的2个必备条件及16个CPE学分官方获取渠道。 1. 证书维持的2个必备…

AI大模型探索之路-训练篇10:大语言模型Transformer库-Tokenizer组件实践

系列篇章💥 AI大模型探索之路-训练篇1:大语言模型微调基础认知 AI大模型探索之路-训练篇2:大语言模型预训练基础认知 AI大模型探索之路-训练篇3:大语言模型全景解读 AI大模型探索之路-训练篇4:大语言模型训练数据集概…

springcloud微服务搭建多数据源(mysql,oracle,postgres,等等)管理模块,支持通过注解方式切换不同类型的数据库

1.背景 同一套微服务管理系统,业务完全一样,但不同的客户可能要求使用自己熟悉的数据库,比如,mysql,oracle,postgres,还有一些国产数据库。如果能够将数据库模块独立出来,兼容各家的…

Mybatis进阶(映射关系一对一 )

文章目录 1.基本介绍1.基本说明2.映射方式 2.配置xml方式(多表联查)1.数据库表设计2.新建子模块1.创建子模块2.创建基本结构 3.MyBatisUtils.java和jdbc.properties和mybatis-config.xml与原来的一致4.IdenCard.java5.Person.java6.IdenCardMapper.java7…

【漏洞复现】北京中科聚网一体化运营平台catchByUrl存在文件上传漏洞

漏洞描述 北京中科聚网一体化运营平台 catchByUrl存在文件上传漏洞,未经身份验证的攻击者可利用此漏洞上传后门文件,从而获取服务器权限。 免责声明 技术文章仅供参考,任何个人和组织使用网络应当遵守宪法法律,遵守公共秩序,尊重社会公德,不得利用网络从事危害国家安…