c语言基础知识学习
1. C 语言简介
- 定义:C 语言是一种过程式编程语言,设计用于系统编程和应用程序开发。
- 特点:高效、灵活、接近硬件,支持指针和内存操作。
1. 基本语法
-
程序结构:
- C 语言程序由函数组成,
main函数是程序的入口点。
#include <stdio.h>int main() {printf("Hello, World!\n");return 0; }#include <stdio.h>是预处理指令,包含标准输入输出库。int main()是主函数,程序从这里开始执行。printf用于输出文本到终端。
- C 语言程序由函数组成,
2. 数据类型
-
基本数据类型:
- int:整数类型,通常占用 4 字节。
- float:单精度浮点数,通常占用 4 字节。
- double:双精度浮点数,通常占用 8 字节。
- char:字符类型,通常占用 1 字节。
int a = 10; float b = 3.14; double c = 2.718281828; char d = 'A'; -
修饰符:
- short、long、signed、unsigned 用于修饰基本数据类型的大小和符号。
unsigned int x = 1000; long int y = 100000L;
3. 变量
-
声明与初始化:
- 变量必须在使用之前声明,并可以在声明时初始化。
int a = 5; // 声明并初始化变量 a int b; // 声明变量 b b = 10; // 初始化变量 b
4. 运算符
-
算术运算符:
- +、-、*、/、%,用于基本的数学运算。
int sum = a + b; int product = a * b; -
关系运算符:
- ==、!=、>、<、>=、<=,用于比较操作。
if (a > b) {printf("a is greater than b\n"); } -
逻辑运算符:
- &&(与)、||(或)、!(非),用于逻辑运算。
if (a > 0 && b > 0) {printf("Both a and b are positive\n"); } -
赋值运算符:
- =、+=、-=、*=、/=,用于赋值操作。
a += 5; // a = a + 5
5. 控制结构
-
条件语句:
- if、else if、else 用于条件判断。
if (a > b) {printf("a is greater\n"); } else if (a < b) {printf("a is smaller\n"); } else {printf("a and b are equal\n"); } -
循环语句:
-
for 循环:
for (int i = 0; i < 5; i++) {printf("%d\n", i); } -
while 循环:
int i = 0; while (i < 5) {printf("%d\n", i);i++; } -
do-while 循环:
int i = 0; do {printf("%d\n", i);i++; } while (i < 5);
-
6. 函数
-
函数定义与调用:
- 函数用于组织代码,执行特定任务。
int add(int x, int y) {return x + y; }int main() {int result = add(5, 3);printf("Result: %d\n", result);return 0; } -
函数原型:
- 在函数定义之前声明函数,以告知编译器函数的存在。
int add(int, int);
7. 数组
-
定义与初始化:
- 数组是相同数据类型元素的集合。
int arr[5] = {1, 2, 3, 4, 5}; -
访问元素:
- 使用索引访问数组元素,索引从 0 开始。
int first = arr[0]; // 访问第一个元素
8. 字符串
-
定义与操作:
- 字符串是以 null 结尾的字符数组。
char str[] = "Hello"; printf("%s\n", str); -
字符串函数:
- 使用 strlen、strcpy、strcat 和 strcmp 等库函数操作字符串。
#include <string.h> char dest[50]; strcpy(dest, "Hello"); strcat(dest, " World");
9. 指针
-
定义与使用:
- 指针存储变量的内存地址。
int a = 10; int *p = &a; // p 指向变量 a 的地址 -
解引用与指针运算:
- 使用 * 操作符访问指针指向的值。
*p = 20; // 修改 a 的值为 20
10. 结构体
-
定义与使用:
- 结构体用于定义具有不同数据类型的集合。
struct Person {char name[50];int age; };struct Person p1; strcpy(p1.name, "Alice"); p1.age = 30;
11. 文件操作
-
打开、读写和关闭文件:
- 使用 fopen、fprintf、fscanf、fclose 操作文件。
FILE *fp = fopen("file.txt", "w"); fprintf(fp, "Hello, File!\n"); fclose(fp);FILE *fp = fopen("file.txt", "r"); char buffer[100]; fgets(buffer, 100, fp); fclose(fp);
12. 动态内存管理
-
分配和释放内存:
- 使用 malloc、calloc、realloc 和 free 管理内存。
int *arr = (int *)malloc(sizeof(int) * 10); // 使用 arr free(arr);
13. 预处理器指令
-
宏定义:
- 用 #define 定义常量或宏。
#define PI 3.14159 -
条件编译:
- 使用 #ifdef、#ifndef、#endif 进行条件编译。
#ifdef DEBUG printf("Debug mode\n"); #endif
相关文章:
c语言基础知识学习
1. C 语言简介 定义:C 语言是一种过程式编程语言,设计用于系统编程和应用程序开发。特点:高效、灵活、接近硬件,支持指针和内存操作。 1. 基本语法 程序结构: C 语言程序由函数组成,main 函数是程序的入口…...
Qt/QML学习-Dial
QML学习 Dial例程视频讲解代码 main.qml import QtQuick 2.15 import QtQuick.Window 2.15 import QtQuick.Controls 2.15Window {width: 640height: 480visible: truetitle: qsTr("Hello World")Dial {anchors.fill: parentid: dial// 设置旋钮的范围from: 0to: …...
达梦数据库系列—48.DMHS实现Mysql到DM8的同步
目录 DMHS实现Mysql到DM8的同步 1、准备介质 2、安装 3、准备源端Mysql和目标端DM8 软件安装 数据库创建 打开归档 开启附加日志 创建辅助表 Mysql客户端驱动 Mysql端安装ODBC 检查依赖包 创建连接用户 创建测试表 4、同步配置 修改服务配置 Mysql到Dm单向同步…...
PostgreSQL的启动过程
PostgreSQL的启动过程 PostgreSQL的启动过程中主要做了以下几件事: 初始化数据目录:如果数据目录是第一次使用,PostgreSQL会进行初始化,创建必要的系统表和目录结构。 读取配置文件:PostgreSQL会读取并解析配置文件&…...
ActiveMQ、RabbitMQ、Kafka、RocketMQ的区别简介
目录 1. 基本概述 2. 性能与吞吐量 3. 消息模型与特性 4. 生态系统与社区支持 5. 复杂性与运维成本 6.在优先级队列、延迟队列、死信队列、重试队列、消费模式、广播模式方面的区别 7.在消息回溯、消息堆积持久化、消息追踪、消息过滤方面的区别 8.在多租户、多协议支持…...
7.1 多态案例
一、案例1:计算器类 1.1 普通方式实现 #include <iostream> #include <string> using namespace std;class Calculator { public:int num1;int num2;int result(string oper){if (oper "")return num1 num2;else if (oper "-"…...
革新测试管理:集远程、协同、自动化于一身的统一测试管理平台
一、研发背景 当下汽车电子测试领域随着不断发展,自动化、智能化的软硬件一体测试解决方案已经成为趋势。能够整合各种测试资源、自动化测试流程,并提供数据分析和可视化报告,从而提高测试效率、降低成本,并确保汽车电子系统的可…...
HAProxy的详解
一、介绍 1.1 定义 HAProxy是一个使用C语言编写的自由及开放源代码软件,其提供高可用性、负载均衡,以及基于TCP和HTTP的应用程序代理。 HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理。HAProxy运行在当前…...
网络安全实训第一天(dami靶场搭建,XSS、CSRF、模板、任意文件删除添加、框架、密码爆破漏洞)
1.环境准备:搭建漏洞测试的基础环境 安装完phpstudy之后,开启MySQL和Nginx,将dami文件夹复制到网站的根目录下,最后访问安装phptudy机器的IP地址 第一次登录删除dami根目录下install.lck文件 如果检测环境不正确可以下载php5.3.2…...
4.1 SQL的起源与发展
欢迎来到我的博客,很高兴能够在这里和您见面!欢迎订阅相关专栏: 工💗重💗hao💗:野老杂谈 ⭐️ 全网最全IT互联网公司面试宝典:收集整理全网各大IT互联网公司技术、项目、HR面试真题.…...
android中实现禁掉有线网络
1.首先初始化mINetworkManagementServiceProxy // INetworkManagementService mNwService; Object mINetworkManagementServiceProxy;public void init() {// IBinder b ServiceManager.getService(Context.NETWORKMANAGEMENT_SERVICE);// mNwService INetworkManagementSe…...
docker-compose安装MongoDB 7.0.12
文章目录 一. Mac1.1 创建目录1.2 docker-compose.yaml默认不开启relSet开启relSet(数据同步) 1.3 部署1.4 卸载1.5 replSet配置1.5.1 初始化replSet1.5.2 创建超管用户1.5.3 验证用户1.5.4 查看replSet状态 二. Centos72.1 创建目录2.2 docker-compose.…...
Ubuntu下NFS和SSH服务
本篇文章记录Ubuntu下如何对NFS和SSH服务进行配置和开启。 目录 一、NFS服务 二、SSH服务 1、安装SSH服务 2. 启动和检查SSH服务 3. 配置SSH服务 4. 连接到SSH服务 5. 设置防火墙 6. 测试连接 三、结语 一、NFS服务 NFS(Network File System࿰…...
游戏管理系统
目录 Java程序设计课程设计 游戏管理系统 1系统简介 1.1需求分析 1.2 编程环境与工具 2系统总体设计 2.1 系统的功能模块图。 2.2 各功能模块简介。 3主要业务流程 (1)用户及管理员登录流程图 (2)信息添加流程 &#x…...
坐牢第二十七天(聊天室)
基于UDP的网络聊天室 一.项目需求: 1.如果有用户登录,其他用户可以收到这个人的登录信息 2.如果有人发送信息,其他用户可以收到这个人的群聊信息 3.如果有人下线,其他用户可以收到这个人的下线信息 4.服务器可以发送系统信息…...
C++自学笔记33(数据类型总结与变量)
数据类型 类型位范围char1 个字节-128 到 127 或者 0 到 255unsigned char1 个字节0 到 255signed char1 个字节-128 到 127int4 个字节-2147483648 到 2147483647unsigned int4 个字节0 到 4294967295signed int4 个字节-2147483648 到 2147483647short int2 个字节-32768 到…...
游戏引擎phaser.js3的使用之玩家和静态物理组碰撞
玩家和静态物理组都加载好了,那就应该开始操作玩家动态和静态之间的碰撞了 下面是通过点击图片按钮来操作碰撞的 sky.on(pointerdown, function () { console.log(图片被点击了!); }) 图片点击后让动态的玩家和静态的物理组碰撞,就可以这…...
springboot整合mybatis以及mybatis-plus 开发
一、springboot整合mybatis 1.注解版 1.1 导入坐标 <dependencies><!--mybatis坐标--><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.2.2</…...
大语言模型微调框架Unsloth:简化模型微调流程,提升模型性能
Unsloth 将 Llama-3、Mistral、Phi-3 和 Gemma 等大型语言模型的微调速度提高了 2 倍,内存使用量减少了 70%,而且准确性不会降低! 特点 通过手动派生所有计算繁重的数学步骤和手写 GPU 内核,unsloth 可以在不更改任何硬件的情况…...
IPD-华为研发之道分析与理解
关于西方众多优秀的管理模式、理论我们学习过,也借鉴以及实践过,拿到《IPD-华为研发之道》通读研习后,正如书中所述,IPD是一套产品开发的模式、理念与方法,IPD思想,流程和方法是诸多成功企业优秀实践的经验…...
vscode里如何用git
打开vs终端执行如下: 1 初始化 Git 仓库(如果尚未初始化) git init 2 添加文件到 Git 仓库 git add . 3 使用 git commit 命令来提交你的更改。确保在提交时加上一个有用的消息。 git commit -m "备注信息" 4 …...
Vue记事本应用实现教程
文章目录 1. 项目介绍2. 开发环境准备3. 设计应用界面4. 创建Vue实例和数据模型5. 实现记事本功能5.1 添加新记事项5.2 删除记事项5.3 清空所有记事 6. 添加样式7. 功能扩展:显示创建时间8. 功能扩展:记事项搜索9. 完整代码10. Vue知识点解析10.1 数据绑…...
Ubuntu系统下交叉编译openssl
一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机:Ubuntu 20.04.6 LTSHost:ARM32位交叉编译器:arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...
超短脉冲激光自聚焦效应
前言与目录 强激光引起自聚焦效应机理 超短脉冲激光在脆性材料内部加工时引起的自聚焦效应,这是一种非线性光学现象,主要涉及光学克尔效应和材料的非线性光学特性。 自聚焦效应可以产生局部的强光场,对材料产生非线性响应,可能…...
Linux简单的操作
ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...
python爬虫:Newspaper3k 的详细使用(好用的新闻网站文章抓取和解析的Python库)
更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、Newspaper3k 概述1.1 Newspaper3k 介绍1.2 主要功能1.3 典型应用场景1.4 安装二、基本用法2.2 提取单篇文章的内容2.2 处理多篇文档三、高级选项3.1 自定义配置3.2 分析文章情感四、实战案例4.1 构建新闻摘要聚合器…...
基于Docker Compose部署Java微服务项目
一. 创建根项目 根项目(父项目)主要用于依赖管理 一些需要注意的点: 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件,否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...
【7色560页】职场可视化逻辑图高级数据分析PPT模版
7种色调职场工作汇报PPT,橙蓝、黑红、红蓝、蓝橙灰、浅蓝、浅绿、深蓝七种色调模版 【7色560页】职场可视化逻辑图高级数据分析PPT模版:职场可视化逻辑图分析PPT模版https://pan.quark.cn/s/78aeabbd92d1...
动态 Web 开发技术入门篇
一、HTTP 协议核心 1.1 HTTP 基础 协议全称 :HyperText Transfer Protocol(超文本传输协议) 默认端口 :HTTP 使用 80 端口,HTTPS 使用 443 端口。 请求方法 : GET :用于获取资源,…...
宇树科技,改名了!
提到国内具身智能和机器人领域的代表企业,那宇树科技(Unitree)必须名列其榜。 最近,宇树科技的一项新变动消息在业界引发了不少关注和讨论,即: 宇树向其合作伙伴发布了一封公司名称变更函称,因…...
