C语言的复习

embedded/2024/12/26 10:24:07/

一、函数

   为了不重复写同一段代码,所以需要封装成函数,每次调用时只需要写函数名。

#include<stdio.h>
void fun()
{int sum = 0;for(int i = 0; i < = 100;i++){sum += i;}
}
int main()
{fun();return 0;
}
1.1 函数的作用:

       可以实现某个具体功能的代码块;增加代码的复用性;降低编程难度;函数不被调用不会被执行;对内隐藏细节,对外暴露接口(例如printf,直接能够使用,不需要知道它的具体代码)。

1.2 函数的四种形式

 无参数,无返回值

#include<stdio.h>
//计算1加到100的值并输出结果
void fun(){int sum = 0;for(int i = 1;i <= 100;i++){sum += i;}printf("sum=%d\n",sum);
}
int main()
{fun();return 0;
}

无参数,有返回值 

#include<stdio.h>
//计算1加到100的值,并返回输出结果
int fun(){int sum = 0;for(int i = 1;i <= 100;i++){sum += i;}return sum;//哪里调用返回到哪里
}
int main()
{int s = fun();printf("s=%d\n",s);return 0;
}

 有参数,无返回值

#include<stdio.h>
//计算1加到n的值,并输出计算结果,n的值在调用函数时传入
void fun(int n){int sum = 0;for(int i = 1;i <= n;i++){sum += i;}printf("sum=%d\n",sum);
}
int main()
{fun(100);return 0;
}

 有参数,有返回值

#include<stdio.h>
//计算1加到n的值,返回计算结果,n的值在调用函数时传入
int fun(int n){int sum = 0;for(int i = 1;i <= n;i++){sum += i;}return sum;
}
int main()
{int s = fun(100);
printf("s=%d\n",s);return 0;
}

二、字符串

  字符串是一个常量,利用数组表示一个字符串,其末尾需要加\0表示字符串已经结束。

#include <stdio.h>
#include <string.h>//字符串的头文件
int main(){char str2[11];strcpy(str2,"Hellowwold");//赋值给它一个字符串
}

三、虚拟内存地址 

内存条、显卡、各种适配卡都有其各自的存储地址空间。

操作系统将设备的存储地址空间抽象成一个数组。

对于内存的每一个字节会分配一个32位(2的32次方个字节)或者64位的编号,这个编号称为内存地址。

#include <stdio.h>
int main(){int a = 5;int b = 10;printf("%p\n",&a);printf("%p\n",&b);//内存地址return 0;
}
3.1 获取数组地址

使用取地址符&获取数组的地址时,返回的是数组第0个元素的内存地址。

int main()
{int a[] = {16,47,89,42,38};printf("%p\n",&a);printf("%p\n",&a[0]);
}
3.2 数组与sizeof

 计算其字符串的长度

int main(){int a[] = {16,47,89,38};for(int i = 0;i < sizeof(a)/sizeof(a[0]);i++){printf("%d\n",a[i]);}
}
printf("%zu\n",sizeof(a));

http://www.ppmy.cn/embedded/148870.html

相关文章

【计算机视觉CV-图像分类】06 - VGGNet的鲜花分类实现:从数据预处理到模型优化的完整实战!

目录 引言 VGGNet概述 VGGNet的网络架构 基于预训练VGGNet的五类鲜花分类实现 4.1 数据准备与预处理 4.2 模型实例化与参数调整 4.3 模型训练与保存最优模型 4.4 模型导入与预测 4.5 训练过程的可视化 模型优化与防止过拟合 总结与展望 参考文献 引言 在计算机视觉…

Scratch教学作品 | 鲁道夫与雪人——温馨圣诞动画,享受节日魔法! ✨

今天为大家推荐一款充满圣诞氛围的Scratch动画作品——《鲁道夫与雪人》&#xff01;由SumitraKan制作&#xff0c;这款作品以轻松愉快的节日旋律和童趣动画&#xff0c;为你呈现一个温馨的圣诞世界。跟着鲁道夫和雪人一起踏上奇妙的节日旅程吧&#xff01;✨ 更棒的是&#xf…

BFS 解决拓扑排序_ 课程表_火星词典

什么是拓扑排序 拓扑排序的基本要求 有向无环图&#xff08;DAG&#xff09;&#xff1a;拓扑排序只适用于没有环的有向图。如果图中有环&#xff0c;无法进行拓扑排序。 唯一性&#xff1a;对于一个DAG&#xff0c;拓扑排序不一定是唯一的&#xff0c;可能有多种有效的拓扑排序…

链原生 Web3 AI 网络 Chainbase 推出 AVS 主网, 拓展 EigenLayer AVS 场景

在 12 月 4 日&#xff0c;链原生的 Web3 AI 数据网络 Chainbase 正式启动了 Chainbase AVS 主网&#xff0c;同时发布了首批 20 个 AVS 节点运营商名单。Chainbase AVS 是 EigenLayer AVS 中首个以数据智能为应用导向的主网 AVS&#xff0c;其采用四层网络架构&#xff0c;其中…

RPC入门教学(一) ———— RPC介绍与protobuf的介绍与使用

什么是RPC RPC&#xff08;Remote Procedure Call&#xff0c;远程过程调用&#xff09;是一种允许程序调用另一台计算机上的子程序或函数的协议&#xff0c;而无需程序员显式地进 行底层网络编程。RPC的目标是让开发者在编写分布式应用时&#xff0c;可以像调用本地函数一样简…

PostgreSQL编译安装教程

下载安装 1.在家目录创建一个文件夹放下载安装包 mkdir softwarecd software 2.下载文件压缩包 wget https://ftp.postgresql.org/pub/source/v16.0/postgresql-16.0.tar.gz 3.解压 tar -xzvf postgresql-16.0.tar.gz 4.编译 在software/postgresql-16.0下 cd software…

电脑文件wlanapi.dll有什么用?找不到wlanapi.dll文件四种详细解决方法

在使用Windows操作系统时&#xff0c;可能会遇到“找不到wlanapi.dll”的错误提示&#xff0c;这通常意味着系统缺少一个关键的动态链接库文件&#xff0c;该文件对于无线网络功能至关重要。本文将为您提供关于wlanapi.dll的详细介绍&#xff0c;分析其缺失对电脑的影响&#x…

Java 中的 7 种重试机制

随着互联网的发展项目中的业务功能越来越复杂&#xff0c;有一些基础服务我们不可避免的会去调用一些第三方的接口或者公司内其他项目中提供的服务&#xff0c;但是远程服务的健壮性和网络稳定性都是不可控因素。在测试阶段可能没有什么异常情况&#xff0c;但上线后可能会出现…