c语言复习3:函数,随机数,内存,数组

## 函数
        - 定义:函数就是程序中独立的功能
        - 格式1:无返回值

        void 函数名(形参列表){函数体;}//函数调用函数名(实参列表);


        - 格式2:有返回值

          返回值类型 函数名(形参列表){函数体;return 返回值;}//函数调用返回值类型 变量 = 函数名(实参列表);


        - c语言中常见的函数官网可查询:http://zh.cppreference.com


## C语言中常见的数学函数
        - 引入文件头 `#include<math.h>`
        - 求绝对值:
              1. int abs (int n);        //注意这个函数包含在` #include<stdlib.h> `文件里
              2. double fabs (double n); //传入参数double/int类型,返回值是double类型
              3. float fabs(float n);
              4. long double fabsl (long double n);


        - 求两者中最大值:
               1. double fmax(double x,double y); //传入参数double/int类型,返回值是double类型
               2. float fmaxf(float x,float y);
               3. long double fmaxl(long double x,long double y);

        - 向上取整:
               1. double ceil(double x); //传入参数double/int类型,返回值是double类型
               2. float ceilf(float x);
               3. long double ceill(long double x);

         - 向下取整:
               1. double floor(double x); //传入参数double/int类型,返回值是double类型
               2. float floorf(float x);
               3. long double floorl(long double x);

        - 求两者中最小值:fmin/fminf/fminl
        - 返回x的自然对数:double log(double n);  //基数为e的对数
        - 返回x的自然对数:double log10(double n);  //基数为10的对数
        - 返回x的y次幂:double pow(double x,double y);  
        - 返回x的平方根:double sqrt(double x);
        - 返回x除以y的余数:double fmod(double x,double y);



## 时间函数
        - 引入头文件:#include<time.h>
        - time(); //获取当前时间
        - 形参:表示获取的时间是否需要在其它地方进行存储,一般来讲,不需要在其他地方进行存储,所有一般传NULL即可
        - 返回值类型:long long
        - //返回值说明:从1970年0点0分0秒到现在的秒值



## 生成随机数函数
        - 步骤:
            1. 引入头文件:`#include<stdlib.h>`
            2. 使用srand设置种子:`srand(1);`
            3. 使用rand获取随机数:`int num = rand();//没有形参`

        - 说明:
           1. 种子不变,随机数的结果就是固定的,如果想随机变化,就可以让时间充当种子,即 `srand(time(NULL));`
           2. 默认随机数范围:0 ~ 32767
           3. 修改a ~ b随机数范围技巧:`rand()%(b+1-a) + a;`



## 内存
        - 即:软件在运行时,用来临时存储数据的,点击保存后,才会存储到硬盘中
        - 内存地址:操作系统为了更好地管理内存里的数据,会把内存以字节为单位进行划分为好多小格子,其中一个字节管理一个内存地址
        - 内存地址的规则:
            1. 32位操作系统,内存地址以32位的二进制表示,即一共有2^32次方,大概42亿多个不同的地址 --> 4GB内存
            2. 64位操作系统,内存地址以64位的二进制表示,即最大内存地址为2^64次方,地址范围:0~2^64,最大支持的内存:2^64(字节) --> 17,592,186(GB) --> 17,179(TB)
        - 变量的内存地址:
            在电脑中以十六进制形式存储第一个字节的位置
            获取方式:&变量名
               int a = 10;
               printf("%p\n",&a); //0000004FE98B9FB14



## 数组
        - 定义:是一种容器,可以用来存储同种数据类型的多个值
        - 数组的内存地址:是第一个元素的第一个字节空间的地址,也是首地址
        - 初始化:
              数据类型 数组名[长度] = {值1,值2,…};

           * 如果长度省略不写,那数据值的个数就是数组长度
           * 如果写了长度,那么所存数据值个数应该 <= 数组长度,未赋值的部分有默认值
           *   整数:0
           *   小数:0.0
           *   字符:'\0'
           * 字符串:NULL
        
        - 数组的长度:总长度/数组类型占用的字节个数   
        - 索引从0开始,从内存的角度来说,索引其实是“偏移量”,偏移首地址的几个单位/字节,一个单位一个字节
        - 最小索引:0
        - 最大索引:长度 - 1
        - 获取数组元素:`数组名[索引]`  
        - 修改数组元素:`数组名[索引] = 值;`
        - 数组作为函数的参数时,要注意:
            1. 数组作为函数的参数时,实际上传递的是数组的首地址,只是一个变量
               * 所以,如果要在函数中对数组进行遍历的话,记得一定要把数组的长度一起传递过去
            2. 数组定义处(`int arr[] = {1,6};`),数组名表示的就是完整的数组

           void printArr(int arr[],int len){for(int i = 0; i < len; i++){printf("%d\n",arr[i]);}}int arr[] = {1,2,8,9,6};int len = sizeof(arr)/sizeof(arr[0]);// int len = sizeof(arr)/sizeof(arr[0]);printArr(arr);


        - 遍历数组时,循环不一定要从0开始,如果先定义好了max值是索引是为0的值,那么循环可以从1开始,提高运行效率
         * 另外,定义的初始最大值不能是0,一定得是数组中已经存在得值(怕数组存的值都是负数,但最后运行得出的最大值是0),一般都是把0索引当作最大值
           
       

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

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

相关文章

【CSS—前端快速入门】CSS 选择器

CSS 1. CSS介绍 1.1 什么是CSS? CSS(Cascading Style Sheet)&#xff0c;层叠样式表&#xff0c;用于控制页面的样式&#xff1b; CSS 能够对网页中元素位置的排版进行像素级精确控制&#xff0c;实现美化页面的效果&#xff1b;能够做到页面的样式和 结构分离&#xff1b; 1…

使用DeepSeek+KIMI生成高质量PPT

一、使用DeepSeek DeepSeek官网&#xff1a;DeepSeek 点击“开始对话”&#xff0c;进入交互页面。 在上图中&#xff0c;输入问题&#xff0c;即可获取AI生成的结果。 基础模型&#xff08;V3&#xff09;&#xff1a;通用模型&#xff08;2024.12&#xff09;&#xff0c;高…

学习笔记:IC存储总结(ROM,RAM, EEPROM, Flash, SRAM, DRAM, DDL)

一&#xff0c;概述 半导体存储器是一种可以存储大量二值信息的半导体器件。在电子计算机及一些其他的数字系统的工作过程中&#xff0c;需要对大量的数据进行储存。由于数据处理的数据量和运算速度的要求&#xff0c;因此把存储量和存取速度作为衡量存储器的重要指标。 在电子…

大语言模型学习

大语言模型发展历程 当前国内外主流LLM模型 ‌一、国外主流LLM‌ ‌LLaMA2‌ Meta推出的开源模型&#xff0c;参数规模涵盖70亿至700亿&#xff0c;支持代码生成和多领域任务适配‌57。衍生版本包括Code Llama&#xff08;代码生成优化&#xff09;和Llama Chat&#xff08;对…

【Block总结】EfficientViT中的多尺度线性注意力模块即插即用

论文信息 标题: EfficientViT: Multi-Scale Linear Attention for High-Resolution Dense Prediction作者: Han Cai, Junyan Li, Muyan Hu, Chuang Gan, Song Han&#xff08;MIT/浙江大学/清华大学/MIT-IBM Watson AI Lab&#xff09;[3][7]GitHub: mit-han-lab/efficientvit…

unsloth报错FileNotFoundError: [WinError 3] 系统找不到指定的路径。

运行平台 Windows 报错信息 Traceback (most recent call last): File “C:\Python312\Lib\site-packages\IPython\core\interactiveshell.py”, line 3577, in run_code exec(code_obj, self.user_global_ns, self.user_ns) File “”, line 1, in runfile(‘D:\python_pr…

【清华大学】DeepSeek从入门到精通完整版pdf下载

DeepSeek从入门到精通.pdf 一共104页完整版 下载链接: https://pan.baidu.com/s/1-gnkTTD7EF2i_EKS5sx4vg?pwd1234 提取码: 1234 或 链接&#xff1a;https://pan.quark.cn/s/79118f5ab0fd 一、DeepSeek 概述 背景与定位 DeepSeek 的研发背景 核心功能与技术特点&#xff08…

如何使用ArcGIS Pro制作横向图例:详细步骤与实践指南

ArcGIS Pro&#xff0c;作为Esri公司推出的新一代地理信息系统&#xff08;GIS&#xff09;平台&#xff0c;以其强大的功能和灵活的操作界面&#xff0c;在地理数据处理、地图制作和空间分析等领域发挥着重要作用。 在地图制作过程中&#xff0c;图例作为地图的重要组成部分&…

监督学习单模型—线性模型—LASSO回归、Ridge回归

目标变量通常有很多影响因素&#xff0c;通过各类影响因素构建对目标变量的回归模型&#xff0c;能够实现对目标的预测。但根据稀疏性的假设&#xff0c;即使影响一个变量的因素有很多&#xff0c;其关键因素永远只会是少数。在这种情况下&#xff0c;还用传统的线性回归方法来…

【QT】QLinearGradient 线性渐变类简单使用教程

目录 0.简介 1&#xff09;qtDesigner中 2&#xff09;实际执行 1.功能详述 3.举一反三的样式 0.简介 QLinearGradient 是 Qt 框架中的一个类&#xff0c;用于定义线性渐变效果&#xff08;通过样式表设置&#xff09;。它可以用来填充形状、背景或其他图形元素&#xff0…

攻防世界GFSJ1184_welcome_CAT_CTF

题目 附件&#xff1a; 两个文件client和server Get Flag Exeinfo File分析 file client client: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0, BuildID[sha1]6045aa1ba5…

EL表达式和JSTL标签

目录 1. EL表达式 1.1. EL表达式概述 1.2. EL表达式运算 1.3. EL表达式操作对象 1.4. EL表达式内置对象 jsp 9个 11个 1.4.1. 参数隐藏对象 1.4.2. 域隐藏对象 1.4.3. PageContext对象 2. JSTL标签 2.1. JSTL概述 2.1.1. 什么是JSTL 2.1.2. 导入标签库 2.2. JSTL核…

PhotoShop学习01

了解Photoshop 这里省略了Photoshop的软件安装&#xff0c;请自行查找资源下载。 1.打开图片 下图为启动photoshop后出现的界面&#xff0c;我们可以通过创建新文件或打开已有文件来启用photoshop的工作界面。 可以通过左边的按钮进行新文件的创建或打开已有文件。 也可以点…

LabVIEW虚拟弗兰克赫兹实验仪

随着信息技术的飞速发展&#xff0c;虚拟仿真技术已经成为教学和研究中不可或缺的工具。开发了一种基于LabVIEW平台开发的虚拟弗兰克赫兹实验仪&#xff0c;该系统不仅能模拟实验操作&#xff0c;还能实时绘制数据图形&#xff0c;极大地丰富了物理实验的教学内容和方式。 ​ …

【TI毫米波雷达】DCA1000的ADC原始数据C语言解析及FMCW的Python解析2D-FFT图像

【TI毫米波雷达】DCA1000的ADC原始数据C语言解析及FMCW的Python解析2D-FFT图像 文章目录 ADC原始数据C语言解析Python的2D-FFT图像附录&#xff1a;结构框架雷达基本原理叙述雷达天线排列位置芯片框架Demo工程功能CCS工程导入工程叙述Software TasksData PathOutput informati…

【数据结构】堆与二叉树

一、树的概念 1.1 什么是树&#xff1f; 树是一种非线性的数据结构&#xff0c;其由 n 个 ( n > 0 ) 有限节点所组成的一个有层次关系的集合。之所以称其为树&#xff0c;是因为其逻辑结构看起来像是一颗倒挂的树。 在树中&#xff0c;有一个特殊的节点称为根节点&#xf…

从零开始开发纯血鸿蒙应用之语音朗读

从零开始开发纯血鸿蒙应用 〇、前言一、API 选型1、基本情况2、认识TextToSpeechEngine 二、功能集成实践1、改造右上角菜单2、实现语音播报功能2.1、语音引擎的获取和关闭2.2、设置待播报文本2.3、speak 目标文本2.4、设置语音回调 三、总结 〇、前言 中华汉字洋洋洒洒何其多…

8 SpringBoot进阶(上):AOP(面向切面编程技术)、AOP案例之统一操作日志

文章目录 前言1. AOP基础1.1 AOP概述: 什么是AOP?1.2 AOP快速入门1.3 Spring AOP核心中的相关术语(面试)2. AOP进阶2.1 通知类型2.1.1 @Around:环绕通知,此注解标注的通知方法在目标方法前、后都被执行(通知的代码在业务方法之前和之后都有)2.1.2 @Before:前置通知,此…

人大金仓国产数据库与PostgreSQL

一、简介 在前面项目中&#xff0c;我们使用若依前后端分离整合人大金仓&#xff0c;在后续开发过程中&#xff0c;我们经常因为各种”不适配“问题&#xff0c;但可以感觉得到大部分问题&#xff0c;将人大金仓视为postgreSQL就能去解决大部分问题。据了解&#xff0c;Kingba…

Deepseek 模型蒸馏

赋范课堂&#xff1a; https://www.bilibili.com/video/BV1qUN8enE4c/