C语言中变量的默认初始值

news2024/10/7 8:20:26

在对数组元素求和时,竟然离奇的发现错了,冲了一会儿浪之后才现在问题在这里

main函数代码:

int main(void){
	int arr[5] = {1,2,3,4,5};
	int res = sum(arr,arr+5);
	printf("%d",res);
}

求和函数(利用双指针求的数组元素之和)为:

int sum(int *start,int *end)
{
	int total;
	while(start < end){
		total += *start;
	}
	return total;
}

惊奇的发现结果是:32
于是将int total;改为int total = 0;之后显示15正确。
最后进行总结:没有弄清楚C语言中原始变量的初始值造成的

结论:在C语言中,局部变量时如果未初始化(int total;),则值是随机的

int main (void){
	int num;
	int num2 = 5;
}

num2的值初始化为5,但是num变量的值是之前占用分配num的空间中的任意值,别指望这个值会是0.

定义局部变量,其实就是在栈中通过移动栈指针来给程序提供一个内存空间和这个局部变量名绑定。因为这段内存空间在栈上,而栈内存是反复使用的(脏的,上次用完没清零的),所以说使用栈来实现的局部变量定义时如果不显式初始化,值就是脏的,即随机的。

c语言中只有局部变量在未赋初值时,才是随机数。

全局变量和静态变量未赋初值时编译器会自动将其初始化为0

局部变量是分配在堆栈上的,而全局变量和静态变量是分配在数据段中的。这个跟程序的内存分配是有关系的。
C语言中内存分配与释放里面对于C语言中的内存分配讲的很清楚,可以参考。
在这里插入图片描述

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

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

相关文章

第8章 虚拟主机

第8章 虚拟主机 虚拟主机&#xff0c;就是把一台物理服务器划分成多个“虚拟”的服务器&#xff0c;这样我们的一台物理服务器就可以当做多个服务器来使用&#xff0c;从而可以配置多个网站。 Nginx提供虚拟主机的功能&#xff0c;就是为了让我们不需要安装多个Nginx&#xf…

2023年8月24-25日|2023中国绿色数据中心峰会

2023中国绿色数据中心峰会 会议背景 应对气候变化已经成为21世纪人类社会面临的紧迫挑战&#xff0c;推进绿色发展成为全球共识。2021年12月&#xff0c;国家发改委等四部门印发的《贯彻落实碳达峰碳中和目标要求推动数据中心和5G等新型基础设施绿色高质量发展实施方案》提出…

QT MD4 MD5 Sha1等几种加密方式

QT MD4 MD5 Sha1等几种加密方式 [1] QT MD4 MD5 Sha1等几种加密方式[2] qt MD5 和AES 加密一 、MD5 加密二、AES 加密和解密 [3] QT中sqlite数据库数据加密/混淆---MD5/SHA1/SHA2/SHA3&#xff08;1&#xff09;创建一个加密对象&#xff08;2&#xff09;放入要加密的数据&…

嘉立创EDA PDF文件的输出教程

在PCB生产调试期间&#xff0c;为了方便查看文件或者查询相关元件信息&#xff0c;会把PCB设计文件转换成PDF文件。下面介绍常规PDF文件的输出方式。 前期工作是需要在电脑上安装PDF阅读器&#xff0c;准备充足后按照以下步骤进行操作。 1&#xff09;执行菜单命令“导出-PDF…

企业财务管理为何需要数字化转型?

为什么企业财务管理需要数字化转型&#xff1f; 许多企业在推动各大业务部门进行数字化转型时&#xff0c;往往会忽略财务部门。然而&#xff0c;作为掌握公司核心资源与数据和推动企业数字化建设的部门&#xff0c;财务也应成为企业数字化转型的重要突破口。 这篇就用几个案…

用Leangoo领歌Scrum敏捷开发工具管理产品路线图?

那我们来看下&#xff0c;如何利用Leangoo管理产品路线图&#xff1f; 首先什么是产品路线图&#xff1f; 产品路线图是一个高层次的战略计划&#xff0c;它描述了产品在未来一段时间可能会如何发展和壮大。 产品路线图确保整个产品团队持续关注产品的目标&#xff0c;帮助产…

07-微服务部署2023系列-centos+docker部署nacos

1、创建nacos的数据库配置 1.1、创建数据库 1.2、创建用户nacos并授权数据库 参考 06 mysql 创建账户部分内容 1.3、执行数据库脚本 导入官方nacos sql语句。如果是历史有历史数据&#xff0c; 从历史数据sql导入 2、创建 bridge 网络并指定 IP 区间 2.1、创建自定义网络…

第十章 使用Samba或NFS实现共享文件

文章目录 第十章 使用Samba或NFS实现共享文件一、SAMBA文件共享服务1、SAMBA简介2、相关配置&#xff08;1&#xff09;、安装软件&#xff08;2&#xff09;、删除多余配置文件&#xff08;3&#xff09;、Samba服务验证方式 3、配置共享资源&#xff08;1&#xff09;、用于设…

认识 AbortController控制器对象 及其应用

参考文章1 参考文章2 一、什么是AbortController (abort 意为 中止/废弃) AbortController是一个控制器对象&#xff08;DOM API&#xff09;&#xff0c;可通过new构造函数的方式&#xff0c;生成控制器实例对象&#xff0c;根据需要终止/取消一个或多个Web请求/监听事件 通…

微信开发者工具突然打不开问题解决

今天微信小程序开发者工具 好好的在电脑里 突然就打不开了 这个问题已经上百度了 想必并不是很少遇到 可能是版本太旧 或者 其中依赖文件丢失 这个基本不用抱什么幻想 还是得重新装 先将快捷打开方式删掉 然后找到工具所在目录 把它删了 然后访问如下地址 https://mp.weixi…

日期时间选择器el-date-picker,限制可选范围,以后端接口某个时间字段为时间节点

哈喽 大家好啊 今天需要做一个时间选择器的限制&#xff0c;不然用户选择某个时间节点之前的时间 比如用户选择发货时间不允许早于收货时间&#xff08;来自后端接口&#xff09; picker-options当前时间日期选择器特有的选项参考下表object 首先申明一个时间可选对象 因为我…

黑马程序员-学成在线项目总结

黑马程序员-学成在线项目总结 收获 基础公共样式 清除默认样式&#xff0c;例如内边距、外边距、项目符号等等 设置通用样式&#xff0c;例如&#xff1a;文字样式 项目结构 注:多个css文件引入顺序&#xff0c;先清除&#xff0c;后设置 版心效果 许多网页整体都有版心居…

Java框架学习01(Spring框架)

1、什么是Spring框架&#xff1f; Spring 是一款开源的轻量级 Java 开发框架&#xff0c;旨在提高开发人员的开发效率以及系统的可维护性。 我们一般说 Spring 框架指的都是 Spring Framework&#xff0c;它是很多模块的集合&#xff0c;使用这些模块可以很方便地协助我们进行…

网络漏洞管理

网络漏洞是硬件、软件或流程中的漏洞或缺陷&#xff0c;可能威胁到网络的正常运行。漏洞会使您的业务和客户的敏感数据面临风险&#xff0c;导致黑客轻松进入、销售额下降、声誉损失和处罚。网络漏洞可以分为硬件、固件、软件和人类漏洞。如果这些实体中的任何一个没有得到适当…

关于Kerberos认证的一些攻击手法学习总结

Kerberos认证流程 前言 本文主要分享最近学习的关于域内Kerberos认证的一些攻击手法&#xff0c;以自我的理解为主&#xff0c;从原理理解切入到基本工具利用来阐述&#xff0c;个人的理解分析较为啰嗦&#xff0c;嫌太兀长的可以跳着看就好&#xff0c;还请各位谅解。如有错误…

唐毅:带领和数集团,做好科技成果与创新需求的“摆渡人”

近年来&#xff0c;人类已经进入有史以来科技创新爆发最密集最迅猛的大时代。 作为人工智能、区块链、交互技术、游戏引擎及数字孪生技术、综合智能网络、物联网等若干前沿科技领域陆续高速发展又碰撞聚变后形成的元宇宙&#xff0c;成为最具引领性的力量。在人工智能、物联网…

网安笔记06 数字签名基本概念

数字签名基本概念 R1:receiver确认、证实sender的签名&#xff0c;这个签名不能被伪造S:sender发送出签名的教习给receiver&#xff0c;不能否认他签发的消息R2:receiver堆收到的签名消息不能否认&#xff0c;收报认证T:第三方可以确认手法收发双方之间的消息传输&#xff0c;…

Django框架之视图HttpRequest对象

本文主要是记录视图的HttpRequest对象属性、方法及示例。 概述 服务器接受http请求后&#xff0c;会根据报文创建httpRequest对象&#xff0c;包含所有请求中必须的数据&#xff1b; 视图方法的第一个参数就是HttpRequest对象&#xff1b;Django创建对象后&#xff0c;调用视…

本地提权漏洞分析【网络安全】

0. 前言 CVE-2023-21752 是 2023 年开年微软第一个有 exploit 的漏洞&#xff0c;原本以为有利用代码会很好分析&#xff0c;但是结果花费了很长时间&#xff0c;难点主要了两个&#xff1a;漏洞点定位和漏洞利用代码分析&#xff0c;欢迎指正。 1. 漏洞简介 根据官方信息&a…

chatgpt中文意思——预训练生成聊天模型

"ChatGPT"相关的英文表达 ChatGPT 这个名字由两部分组成&#xff1a;Chat 和 GPT。 Chat 是聊天&#xff0c;而GPT是Generative Pretrained Transformer的缩写&#xff1a;预训练生成模型。因此&#xff0c;ChatGPT的意思是预训练生成聊天模型。 简单来说就是一个预先…