06:C语言数组

C语言数组

  • 1、怎么定义数组
  • 2、怎么使用数组?
  • 3、不同数据类型的数组
  • 4、sizeof运算符
  • 5、字符数组

数组就是数组成一个组,数就是一个特定 数据类型相同的变量,组就是说好多数放在了一起。

1、怎么定义数组

int a[5] = {1234};//不完全初始化,a[4] = 0
......................
或者:
int a[5];
a[0] = 1;	
a[1] = 2;	
a[2] = 3;	
a[3] = 4;	
......................
或者:
int a[5] = {1, 2, 3, [4] = 99};//a[3] = 99,a[4] = 0

数组中元素类型  数组名[数组元素个数];

总结:数组中的所有元素必须是同一种数据类型,不可能在一个数组中存储两种数据类型的数。

2、怎么使用数组?

数组定义的时候作为整体定义。但是使用的时候不能作为整体使用,使用时必须拆开使用数组中的各个元素。譬如数组int a[4],使用其中的四个元素,分别用a[0]~a[3],其中[ ]是数组的标志,[ ]中的数字叫做数组下标(index,索引),下标是我们访问数组中各个元素的指引。下标是0代表数组中第一个元素,下标是1代表数组第二个元素。如果数组长度为n,下标中最后一个是n-1。访问数组时要特别注意下标,下标是从0开始的,如果下标超出了n-1,会产生越界访问,结果是不可预期的。

/*键盘录入数组元素,并依次输出*/
#include <stdio.h>
int main(void)
{int i;int a[5];printf("请输入5个整数,中间以空格隔开\n");for(i=0 ;i<=4 ;++i){scanf("%d",&a[i]);}for(i=0 ;i<=4 ;++i){printf("a[%d] = %d,",i,a[i]);}printf("\n");return 0;
}

3、不同数据类型的数组

int a[5];			// 整形数组
float a[5];			// 浮点型数组
double a[5];		// 双精度浮点型数组
char a[5];			// 字符数组

程序在环境中运行时,需要一定的资源支持。这些资源包括:CPU(运算能力)、内存等,这些资源一般由运行时环境(一般是操作系统)来提供,譬如我们在linux系统上./a.out运行程序时,linux系统为我们提供了运算能力和内存。

程序越庞大,运行时消耗的资源越多。譬如内存占用,越大的程序,占用的内存越多。占用内存的其中之一,就是我们在程序中定义的变量。

C语言程序中,变量的实质就是内存中的一个格子。当我们定义(创造一个变量)了一个变量后,就相当于在内存中得到了一个格子,这个格子的名字就是变量名,以后访问这个内存格子就使用该变量名就行了。这就是变量的本质。

数据类型的实质是内存中格子的不同种类。譬如在32/64位机器上

短整形格子(short)					占用2字节空间 16位
整形格子(int)			            占用4字节空间 32位
长整形格子(long)                    占用8字节空间 64位
单精度浮点型格子(float)			    占用4字节空间 32位
双精度浮点型格子(double)		        占用8字节空间 64位
字符型格子(char)				    占用1字节空间 8位

4、sizeof运算符

作用:返回一个变量或者一个数据类型的内存占用长度,以字节为单位。

#include <stdio.h>int main(void)
{int len;int a[4];len = sizeof(int);printf("len = %d\n",len);len = sizeof(a);//4 * 4 = 16个字节printf("len = %d\n",len);return 0;
}

len = 4
len = 16

5、字符数组

#include <stdio.h>int main(void)
{int i,len;char a[] = {'a', 'b', 'c', 'd', 'e'};//[]中的数字省略了char b[] = "abcde";//和上面的初始化相同len = sizeof(a);for(i=0; i<=4; i++){printf("%c",a[i]);}printf("\n%d\n",len);len = sizeof(b);for(i=0; i<=4; i++){printf("%c",b[i]);}printf("\n%d\n",len);return 0;
}

abcde
5
abcde
6

基础知识:
1、在C语言中引用一个单个字符时,应该用单引号’‘括起来,譬如’a’。
2、定义数组同时初始化,则可以省略数组定义时[ ]中的长度。C语言编译器会自动推论其长度,推论依据是初始化式中初始化元素的个数。由此可知,省略[]中数组元素个数只有一种情况,那就是后面的初始化式必须为完全初始化。
3、在C语言中引用一个字符串时,应该用"“括起来,譬如"abcde”。"abcde"实际上有6个字符,分别是’a’ ‘b’ ‘c’ ‘d’ ‘e’ ‘\0’
‘\0’ 这个字符是ASCII码表中的第一个字符,它的编码值是0,对应的字符是空字符(不可见
字符,在屏幕上看不见,没法显示,一般要用转义字符方式来显示。譬如’\n’表示回车符,‘\t’表示Tab,’\0’代表空字符)
'\0’是C语言中定义的字符串的结尾标志。所以,当c语言程序中使用"abcde"这种方式去初始化时,编译器会自动在字符’e’后面添加一个’\0’。于是乎变成了6个字符。

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

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

相关文章

刷题之合并两个有序数组(leetcode)

因为换了手机号码&#xff0c;之前leetcode的账号登不上去了&#xff0c;正好太久不刷题&#xff0c;很多思路都没了&#xff0c;所以重新开始刷leetcode&#xff01; 这道题很简单&#xff0c;指针模拟一下&#xff0c;从后往前考虑&#xff0c;先看最大值。 class Solution…

【大语言模型系列之Transformer】

&#x1f3a5;博主&#xff1a;程序员不想YY啊 &#x1f4ab;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f917;点赞&#x1f388;收藏⭐再看&#x1f4ab;养成习惯 ✨希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出…

PLC电源模块

PM电源模块 为CPU信号模块及 其他的扩展设备、其他用电设备&#xff08;如传感器&#xff09;提供工作供电 接线和开关 状态显示 灯的闪烁示意看手册 PS电源模块 为CPU信号模块及其他的扩展设备提供工作供电。PS(System Power Supply) 外形与PM电源模块类似&#xff0c;状…

洛谷 P1491 集合位置

题意 给定一张 n n n 点 m m m 边的无向图&#xff0c;第 i i i 个点坐标为 ( x i , y i ) (x_i,y_i) (xi​,yi​)&#xff0c;求 1 → n 1 \to n 1→n 的非严格次短路&#xff08;不允许重复经过点和边&#xff09;。 思路 我们采用删边的思想&#xff0c;先跑一遍最短…

常用的MRI分析软件

MRI&#xff08;磁共振成像&#xff09;分析软件种类繁多&#xff0c;涵盖了从基础图像处理到高级数据分析的各个方面。这些软件广泛应用于临床诊断、研究和教育等领域。以下是一些常用的MRI分析软件&#xff1a; 开源软件 商用软件 特殊用途软件 在线工具和云平台 这些软件各…

仓颉编程语言

仓颉编程语言 1、仓颉编程语言官网文档 1、仓颉编程语言官网文档 -- 华为技术有限公司-编译器与编程语言实验室仓颉语言团队仓颉 仓颉编程语言是一款面向全场景智能的新一代编程语言&#xff0c;主打原生智能化、天生全场景、高性能、强安全。融入鸿蒙生态&#xff0c;为开发者…

MATLAB制作一个简单的函数绘制APP

制作一个函数绘制APP&#xff0c;输入函数以及左右端点&#xff0c;绘制出函数图像。 编写回调函数&#xff1a; 结果&#xff1a;

图片高效管理神器,随机高度切割,一键生成灰色图片,个性化处理随心所欲

在数字化时代&#xff0c;图片已成为我们生活和工作中不可或缺的一部分。然而&#xff0c;面对海量的图片资源&#xff0c;如何高效管理、快速处理&#xff0c;成为了许多人头疼的问题。今天&#xff0c;我们为您带来了一款全新的图片高效管理神器_——首助编辑高手&#xff0c…

FastApi+WebSocket 解析

FastAPI 比较简单&#xff0c;就是加一个路由装饰器就可以运行函数了&#xff0c;一般来说是结合async来进行异步编程&#xff0c;同时结合websocket来使用。 目录 特点运行Websocket进阶 特点 FastAPI 是一个现代、快速&#xff08;高性能&#xff09;的 Web 框架&#xff0…

Nginx 报错问题汇总

目录 一、nginx: [emerg] invalid number of arguments in "include" directive in C:\Program Files\nginx-1.15.4/conf/nginx.conf:61 总结&#xff1a; 二、nginx: [error] OpenEvent("Global\ngx_reload_2152") failed (5: Access is denied) 解决…

51-3 内网信息收集 - 获取RDP密码信息(没有实验成功)

获取常见应用软件凭据 注意: %USERPROFILE% 是环境变量。在使用系统权限时,可以将 %USERPROFILE% 替换为绝对路径,或使用其他用户的令牌进行操作。 获取 RDP 保存的凭据(远程桌面) 为了避免每次连接服务器都进行身份验证,经常使用 RDP 远程桌面连接远程服务器的用户可能…

【bazel】 一文读懂Starlark

Starlark 的语言编码 当我们编写工作区和构建文件时&#xff0c;我们使用一种名为 Starlark 的语言进行编码&#xff0c;它是 Python 的一种自定义变体。现在&#xff0c;对于所有 Python 开发人员来说&#xff0c;请保持您的敬意。Starlark 是 Python 的一种变体 - 即该语言的…

LeetCode436:寻找右区间

题目链接&#xff1a;436. 寻找右区间 - 力扣&#xff08;LeetCode&#xff09; class Solution { public:vector<int> findRightInterval(vector<vector<int>>& intervals) {vector<pair<int, int>> startIntervals;int n intervals.size…

H5小游戏开发,广告游戏开发制作

以下是一个 H5 小游戏开发的基本步骤和流程&#xff1a; 需求分析 确定游戏的类型&#xff0c;如益智类、动作类、冒险类等。明确游戏的目标、玩法规则、难度级别、关卡设计等。 技术选型 选择开发框架和工具&#xff0c;常用的 H5 游戏开发框架有 Phaser、CreateJS 等。确定使…

ubuntu下运行程序时提示缺库问题的有效解决方法

目录 一、问题现象二、解决方式三、总结 一、问题现象 当我们平时在ubuntu上运行一个程序时时长会遇到如下情况&#xff0c;含义为本机缺少执行程序需要的库 这时候我们可能会根据缺少的库使用apt install 库名的模糊名字 进行安装&#xff0c;然后再去运行&#xff0c;此时可…

java-hashset 源码分析 3

### 9. HashSet 的局限性 #### 9.1 无序性 HashSet 不保证元素的顺序&#xff0c;这意味着插入顺序和遍历顺序可能不同。如果需要有序集合&#xff0c;可以考虑使用 LinkedHashSet 或 TreeSet。 #### 9.2 性能依赖于哈希函数 HashSet 的性能高度依赖于哈希函数的质量。如果…

网页生成二维码、在线演示

https://andi.cn/page/621504.html

【OJ】运行时错误(Runtime Error)导致递归爆栈问题

在进行OJ赛时&#xff0c; 题目&#xff1a;给你一个整数n&#xff0c;问最多能将其分解为多少质数的和。在第一行输出最多的质数数量k,下一行输出k个整数&#xff0c;为这些质数。 出现运行时错误 代码如下&#xff1a; def main():# code heren int(eval(input()))list …

《优化接口设计的思路》系列:第2篇—小程序性能优化

优化Uniapp应用程序的性能可以从以下几个方面进行优化&#xff1a; 1.减少页面加载时间&#xff1a;避免页面过多和过大的组件&#xff0c;减少不必要的资源加载。可以使用懒加载的方式&#xff0c;根据用户的实际需求来加载页面和组件。 2.节流和防抖&#xff1a;对于频繁触发…

AI中药处方模型构建与案例

在中医领域,人工智能(AI)可以生成各种指令来辅助诊断、治疗和研究。 1. 诊断辅助指令: 根据患者的症状和体征,自动分析并生成可能的中医证候诊断建议。利用中医望闻问切四诊信息,智能识别关键症状,提供对应的中医辨证思路。2. 治疗建议指令: 根据辨证结果,自动推荐相应…