C语言 入门例子和代码学习

下面提供一些C语言的入门示例代码,并附有注释,以帮助理解每个部分的功能。

1. Hello World程序
#include <stdio.h>  // 引入标准输入输出库

int main() {  // 主函数的开始
    printf("Hello, World!\n");  // 打印 "Hello, World!" 到控制台
    return 0;  // 返回0表示程序成功执行
}
2. 变量声明和基本数据类型
#include <stdio.h>

int main() {
    int age = 25;          // 声明一个整型变量 age 并初始化为 25
    float height = 1.75;  // 声明一个浮点型变量 height 并初始化为 1.75
    char initial = 'A';   // 声明一个字符型变量 initial 并初始化为 'A'
    printf("Age: %d\n", age);          // 打印 age 的值
    printf("Height: %f\n", height);  // 打印 height 的值
    printf("Initial: %c\n", initial);  // 打印 initial 的值
    return 0;
}
3. 控制结构
If条件语句
#include <stdio.h>

int main() {
    int age = 18;
    if (age >= 18) {  // 如果 age 大于或等于 18
        printf("You are an adult.\n");  // 打印 "You are an adult."
    } else {
        printf("You are not an adult.\n");  // 否则打印 "You are not an adult."
    }
    return 0;
}
For循环
#include <stdio.h>

int main() {
    int i;  // 声明循环变量 i
    for (i = 0; i < 5; i++) {  // 从 0 到 4 循环
        printf("Count: %d\n", i);  // 打印循环变量的值
    }
    return 0;
}
While循环
#include <stdio.h>

int main() {
    int count = 0;  // 初始化计数器
    while (count < 5) {  // 当计数器小于 5 时循环
        printf("Count: %d\n", count);  // 打印计数器的值
        count++;  // 计数器递增
    }
    return 0;
}
4. 数组
#include <stdio.h>

int main() {
    int numbers[] = {1, 2, 3, 4, 5};  // 声明并初始化一个整型数组
    int size = sizeof(numbers) / sizeof(numbers[0]);  // 计算数组元素数量
    for (int i = 0; i < size; i++) {  // 遍历数组
        printf("%d ", numbers[i]);  // 打印数组元素
    }
    printf("\n");  // 打印换行符
    return 0;
}
5. 函数
#include <stdio.h>

void printHello() {  // 声明并定义一个打印问候的函数
    printf("Hello from function!\n");
}

int add(int a, int b) {  // 声明并定义一个加法函数
    return a + b;  // 返回两个参数的和
}

int main() {
    printHello();  // 调用 printHello 函数
    int sum = add(3, 5);  // 调用 add 函数并接收返回值
    printf("Sum: %d\n", sum);  // 打印和
    return 0;
}
6. 指针
#include <stdio.h>

int main() {
    int number = 42;  // 声明一个整型变量
    int *ptr = &number;  // 声明一个指向整型的指针并指向 number 的地址
    printf("Value of number: %d\n", number);  // 打印 number 的值
    printf("Address of number: %p\n", ptr);  // 打印 number 的地址
    printf("Value of pointer: %d\n", *ptr);  // 打印指针指向的值
    return 0;
}
7. 结构体
#include <stdio.h>

typedef struct {  // 使用 typedef 定义一个结构体
    char name[20];  // 结构体中的字符数组
    int age;       // 结构体中的整型变量
} Person;

int main() {
    Person person = {"Alice", 30};  // 声明一个 Person 类型的变量并初始化
    printf("Name: %s\n", person.name);  // 打印 person 的 name 字段
    printf("Age: %d\n", person.age);  // 打印 person 的 age 字段
    return 0;
}
8. 文件操作
写文件
#include <stdio.h>

int main() {
    FILE *file = fopen("example.txt", "w");  // 以写模式打开文件
    if (file == NULL) {  // 如果文件无法打开
        perror("Error opening file");  // 打印错误信息
        return -1;  // 返回 -1 表示错误
    }
    fprintf(file, "Hello, file!\n");  // 向文件写入字符串
    fclose(file);  // 关闭文件
    return 0;  // 返回 0 表示成功
}
读文件
#include <stdio.h>

int main() {
    FILE *file = fopen("example.txt", "r");  // 以读模式打开文件
    if (file == NULL) {  // 如果文件无法打开
        perror("Error opening file");  // 打印错误信息
        return -1;  // 返回 -1 表示错误
    }
    char buffer[100];  // 声明一个字符数组作为缓冲区
    while (fgets(buffer, sizeof(buffer), file)) {  // 循环读取文件直到文件末尾
        printf("%s", buffer);  // 打印缓冲区的内容
    }
    fclose(file);  // 关闭文件
    return 0;  // 返回 0 表示成功
}
 

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

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

相关文章

HTML的标签(标题、段落、文本、图片、列表)

HTML的标签1 标题标签&#xff1a;段落标签&#xff1a;文本标签&#xff1a;图片标签:列表标签&#xff1a;有序列表&#xff1a;无序列表&#xff1a;定义列表&#xff1a;列表案例&#xff1a; 标题标签&#xff1a; 标签&#xff1a;h1~h6 注意&#xff1a;如果使用无效标…

运维相关知识

一、运维需要关注 服务器的哪些数据&#xff1f; 1. CPU 1.1 CPU使用率&#xff1a; top&#xff0c;vmstat (1) 用户CPU使用率&#xff1a;用户态程序的使用率。top 命令 us 字段和 nice字段 (低优先级) (2) 系统CPU使用率&#xff1a;内核态程序的使用率。top 命令 sy 字…

【前端每日基础】day32——节流和防抖

节流&#xff08;Throttle&#xff09;和防抖&#xff08;Debounce&#xff09;是两个在前端开发中常用的技术&#xff0c;它们用于控制某些函数的执行频率&#xff0c;以提升性能和用户体验。虽然两者的目标相似&#xff0c;但实现方式和适用场景有所不同。 一、节流&#xf…

【安规介绍】

文章目录 一、基础知识安规上的六类危险的防护&#xff1a;安全电压漏电流接触电流能量问题&#xff1a;火灾问题&#xff1a;热问题结构问题阻燃等级绝缘等级&#xff1a;对接地系统的要求&#xff1a;结构要求:电气要求&#xff1a; 二、设计的关键电气绝缘距离电气爬电距离:…

Python 关于加密和解密

1、理解 加密是通过使用各种加密算法来对数据进行加密和解密的过程。Python 提供了许多内置库和第三方库&#xff0c;可以用于实现各种加密算法和技术&#xff0c;包括对称加密、非对称加密、哈希函数等。以下是 Python 中常用的一些加密相关的库和模块&#xff1a; hashlib …

Python知识点14---被规定的资源

提前说一点&#xff1a;如果你是专注于Python开发&#xff0c;那么本系列知识点只是带你入个门再详细的开发点就要去看其他资料了&#xff0c;而如果你和作者一样只是操作其他技术的Python API那就足够了。 在Python中被规定的东西不止有常识中的那些关键字、构造器等编程语言…

Python知识点4---循环语句

提前说一点&#xff1a;如果你是专注于Python开发&#xff0c;那么本系列知识点只是带你入个门再详细的开发点就要去看其他资料了&#xff0c;而如果你和作者一样只是操作其他技术的Python API那就足够了。 Python支持两种循环for和while&#xff0c;但是他们和其他的语言有些…

乡村振兴与农村环境整治:加强农村环境治理,改善农村人居环境,打造干净整洁、生态宜居的美丽乡村

目录 一、引言 二、农村环境整治的重要性 1、提升农民生活质量 2、促进农村经济发展 3、保护农村生态环境 三、当前农村环境面临的问题 1、垃圾处理不当 2、污水处理设施缺乏 3、农业面源污染严重 四、加强农村环境治理的措施 1、完善农村垃圾处理体系 2、加强农村…

14.Ollydbg的基本使用

上一个内容&#xff1a;13.优化界面化的游戏辅助 Ollydbg是一个调试工具&#xff0c;它可以一步一步的运行一个程序并且还能很直观的看到被调试程序的寄存器状态、栈状态。Ollydbg需要以管理员方式运行&#xff01; 下图附加程序是调试一个正在运行的进程&#xff1a; 点击了…

STM32F103借助ESP8266连接网络

ESP8266配置 STM32F103本身是不具备联网功能的&#xff0c;所以我们必须借助其他单片机来进行联网&#xff0c;然后让STM32与联网单片机通信&#xff0c;就可以实现STM32联网了。 本文借助的是ESP8266模块&#xff0c;其通过UART协议与STM32通信&#xff08;http://t.csdnimg.c…

文章解读与仿真程序复现思路——电力系统自动化EI\CSCD\北大核心《考虑动态定价的新能源汽车能源站优化运行》

本专栏栏目提供文章与程序复现思路&#xff0c;具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源…

Nacos-SpringBoot-配置中心

Nacos配置中心 前情回顾 上一章呢 了解并且学习了Nacos服务注册与发现 在一系列破防中走了出来Nacos服务注册完成https://blog.csdn.net/m0_68711597/article/details/139265244?spm1001.2014.3001.5502 本以为接下来会一帆风顺 一马平川 没想刚出坑 又入坑 Nacos的配置…

Prime1 - 信息收集和分析能力的试炼

主机发现 nmap扫描与分析 端口22、80 详细扫描&#xff1b;linux、ubuntu、 udp扫描 端口都是关闭的 脚本扫描 web渗透 打开只有一张图片&#xff1b;源码有图片和一个alt&#xff1a;hnp security不知道有啥用&#xff0c;先记录下来吧 继续web渗透思路走吧&#xff0c;目录…

[Python]用Qt6和Pillow实现截图小工具

本文章主要讲述的内容是&#xff0c;使用python语言借助PyQt6和Pillow库进行简单截图工具的开发&#xff0c;含义一个简单的范围裁剪和软件界面。 主要解决的问题是&#xff0c;在高DPI显示屏下&#xff0c;坐标点的偏差导致QWidget显示图片不全、剪裁范围偏差问题。 适合有一点…

vivado BD_ADDR_SEG

按字母顺序排列的一类对象列表 BD_ADDR_SEG 描述 地址段或bd_addr_seg对象描述一个范围的位置和大小记忆力它们有一个范围&#xff08;大小&#xff09;和一个可选的起始偏移。对于各种内存映射的主接口和从接口&#xff0c;IP集成商遵循行业用于捕获存储器要求和能力的标准IP-…

爬楼梯 - LeetCode 热题 81

大家好&#xff01;我是曾续缘&#x1f607; 今天是《LeetCode 热题 100》系列 发车第 81 天 动态规划第 1 题 ❤️点赞 &#x1f44d; 收藏 ⭐再看&#xff0c;养成习惯 爬楼梯 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法…

Android Kotlin 打开相册选择图片(多选)

1. 核心代码 打开系统相册功能&#xff0c;本代码使用两种方式打开本地相册&#xff0c;startActivityForResult 已经废弃&#xff0c;可以使用新的方式。 package com.example.facedetectordemoimport android.content.pm.PackageManager import androidx.appcompat.app.App…

【人工智能004】文本挖掘算法模型实战及经验总结(最近更新中)

1.熟悉、梳理、总结数据分析实战中的文本挖掘领域实战研发知识体系&#xff0c;这块领域很大&#xff0c;需要耗费很多精力&#xff0c;逐步总结、更新到位&#xff0c;&#xff0c;&#xff0c; 2.欢迎点赞、关注、批评、指正&#xff0c;互三走起来&#xff0c;小手动起来&am…

数据库与缓存⼀致性⽅案

数据库与缓存⼀致性⽅案 1、背景2、数据⼀致性⽅案设计3、数据⼀致性⽅案流程图4、关键代码4.1、 处理数据⼀致性的消息队列⼊⼝4.2、数据⼀致性配置的常量信息 1、背景 现有的业务场景下&#xff0c;都会涉及到数据库以及缓存双写的问题&#xff0c;⽆论是先删除缓存&#xf…

【Bug】修改计算机名称出现ip无法连接mysql数据库

解决&#xff1a; mysql -u root -p输入密码登录mysql服务器&#xff0c;那个ip是本机ip4的地址单ip放行。推荐全部&#xff0c;后面123456是密码 GRANT ALL PRIVILEGES ON *.* TO root192.168.0.109 IDENTIFIED BY 123456; 全部IP都放行 GRANT ALL PRIVILEGES ON *.* …