C语言 数组和字符串篇

el/2024/3/2 10:59:11
Four Day

一、数组

数组:是按一定顺序排列具有某种相同性质的同类变量的集合

1、一维数组

数据类型数组名[整数常量表达式]

说明:

  • 数据类型是全体数组元素的数据类型
  • 数组名用标识符表示,整型常量表达式代表数组具有的数组元素个数
  • 数组元素的下标一律从0开始
  • 编译程序为数组开辟连续的存储单元,用来顺序存放数组的各数组元素用数组名表示该数组存储区的首地址

2、一维数组初始化

  • int a[4] = {1, 2, 3, 4}

执行:a[0] = 1; a[1] = 2; a[2] = 3; a[3] = 4;

  • 只给部分数组元素初始化
static int[4] = {1, 2};
  • 初始化时,定义数组元素的个数的常量表达式可以省略
int a[] = {1, 2, 3};

3、二维数组

数据类型 数组名[整型常量表达式][整型常量表达式]

 
  • int a[2][3];
表示:数组类型为二维数组
有2行3列,共2*3=6个元素
行下标为0、1,列下标为0、1、2
4、二维数组初始化
  • int a[2][3] = {{1, 2, 3}, {4, 5, 6}};
执行:a[0][0] = 1; a[0][1] = 2; a[0][2] = 3;
a[1][0] = 4; a[1][1] = 5; a[1][2] = 6;
  • 部分数组初始化
static int a[2][3] = {{1, 2},{4}};
  • 可省略第一维,不可省略第二维,数据个数第二维长度可确定第一维长度
例:int a[][3] = {1, 2, 3, 4, 5, 6};
第一维数组长度:6/3=2 //用第二维长度/数据个数
  • 第二维长度除以数据个数不能整除,则所得商+1
例:int a[][3] = {1, 2, 3, 4};
第一维数组长度:4/3的商为1, 1+1=2
  • 分行初始化
static int a[][3] = {{1, 2},{4}};
一、数组练习
1、输出数组中的元素
#include<stdio.h>
int main(void) {int a[] = {1, 5, 6};int i;for (i = 0; i < 3; i++) {printf("%d\n", a[i]);}
}

输出结果:1  5  6

2、数组的理解
#include<stdio.h>
int main(void) {int a[2];//在a处开辟两个4个字节大小的内存空间 a[0] = 1;//在a处偏移0个位置赋值为1 a[1] = 2;//在a处偏移1个位置赋值为2 printf("%d\n", a);//a处存的东西 printf("%d\n", &a[0]);//【a存的地址】处【再偏移0】处的【地址】 printf("%d\n", a[0]);//【a处的地址】处【再偏移0】处的【值】 printf("%d\n", &a[1]);//【a存的地址】处【再偏移1】处的【地址】 
}


输出结果:2686784  2686784  1  2686788

3、遍历二维数组
#include<stdio.h>
int main(void) {int a[2][3] = {{100, 99, 60}, {99, 60, 99}};int i, j;for (i = 0; i < 2; i++) {for (j = 0; j < 3; j++) {if (i == 0) {printf("班长的成绩%d\n", a[i][j]);}if (i == 1) {printf("纪检委员的成绩%d\n", a[i][j]);}}}
} 


输出结果:


4、字符串数组
#include<stdio.h>
#include<string.h>
int main(void) {char b[] = "china";int a[] = {1, 2, 3};char c = 65;//%d c可输出为数字 //%c c也可输出为字符 printf("%s\n", b);// 如果按%s字符串格式输出,则为字符串 printf("%d\n", b);//如果首地址按%d整形输出,则为地址 printf("%d\n", a);//数组再存数组,便是二位数组 int grade[2][2] = {{99, 100}, {88, 66}};//数组存数组再存一个数组,便是三维数组(字符串是数组) char users[2][2][8] = {{"xiaosan", "123"},{"xiaosi", "123"}};char p[] = "123";char pp[] = "123";char ppp[] = "1234";printf("%d\n", p == pp);//p和pp是首地址,两个数组的首地址不一样 printf("%d\n", strcmp(p, pp) == 0);//strcmp是比较的两个字符串(经过处理的,不再是地址类似于%s) printf("%d\n", strcmp(p, ppp) == 0);
}


输出结果:


http://www.ngui.cc/el/4466118.html

相关文章

数组及函数的应用篇

Six Day 一、递归函数函数的递归调用有两种形式:直接递归调用 和 间接调用例如:直接递归int mul (int n){int n;int f;f=mul(m);

C语言 数组、函数应用实例篇

Seven Day 1、编写程序,任意输出10个整数的数列,先将整数按照从小到大的顺序进行排序,然后输入一个整数插入到数列中,使数列保持从大到小的顺序#include<stdio.h> void mop(int n, int a[]) { //定义mop()函数 int i, j, temp;for (i = 0; i < …

Axure入门设计——模糊设计(步骤)

模糊搜索框 接下来要演示的是如何在Axure中做一个jd搜索商品的搜索框。 具体如下所示:

PS入门——色彩基础篇

色彩三要素 视觉所能感知的一切色彩现象,都具有色相、明度、纯度三种性质,是色彩最基本的构成要素。 色相——即赋予每种色彩的相貌,如:红、橙、黄、绿、青、蓝、紫 代表不同特征的色彩相貌。例如将黄色加入白色之 后,显出不同的奶黄、麦芽黄等,但它的黄色性质不变,依…

Web应用及XHTML基础篇

一、企业应用计算的演变 1、主机/终端模式&#xff08;Mainframe/Terminal&#xff09;&#xff1a;使用者一般通过只有一个屏幕、一个键盘和一根主机连接线的“哑终端”与主机的应用程序进行交互。 超市收银航空售票小型储蓄所 2、客户机/服务器&#xff08;Client/Server)&a…

XHTML表单-超链接篇

一、超链接与目录 1、目标&#xff1a; target"_blank" (打开新页面)target“_srlf” (本页面跳转) target“_parent” (跳转为父页面) target“_top” (跳转我最上层页面) 2、目录快捷键&#xff1a; 以一个反斜杠&#xff08;/&#xff09;开头的目录表示该目…

CSS布局——元素浮动与定位篇

一、元素浮动&#xff08;float&#xff09; 定义&#xff1a;浮动是基于CSS现代Web设计用到的主要功能之一&#xff0c;它可以用来创建多列的网页布局。 1、属性值&#xff1a;none(不浮动)、left(向左)、right(向右) 注&#xff1a;fioat属性可以应用于任何元素 2、行为 …

JavaScript编程--任意输入一个数判断是不是闰年,数列求和练习

&#xfeff;&#xfeff; 1、任意输入一个数判断是不是闰年&#xff1a; (1).能被4整除&#xff0c;但同时不能被100整除的年份都是闰年 (2).能被400整除的年份是闰年 相应代码如下&#xff1a; <!DOCTYPE html> <html> <head lang"en"><meta…

JvaScript--使用js添加数据,点击按钮,将内容放入表格中

&#xfeff;&#xfeff; 题目要求&#xff1a; 创建一个Student类&#xff0c;有name、age属性和方法showInfo()&#xff0c; 在页面上显示&#xff1a; <p>姓名 | 年龄</p> <div> </div> <input type"button" value"显示下一…

JavaScript--利用setInterval或setTimeout实现背景颜色轮播

Window属性---暂停和定时器 暂停 var timeoutObj = setTimeout("执行程序",毫秒) setTimeout(引用,1000)setTimeout("执行程序",1000)clearTimeout(timeoutObj) 定时器 var intervalObj = setInterval(("执行程序",毫秒) setInterval(引用,…