Day9 C基础(循环一维数组)

文章目录

  • for循环
    • 1.变形一:
    • 2.变形二:
    • 3.变形三:
  • while循环
    • 格式:
    • 执行顺序:
  • do_while循环
    • 格式:
  • 循环控制语句
  • 数组
    • 1.概念:
    • 2.定义格式:
    • 3.访问元素:
    • 3.访问元素:
    • 4.特点
    • 5.注意
    • 6.分类
      • 一维数组:只有一个下标的数组
        • 1.格式:
        • 2.访问元素:
        • 3.数组名:数组首元素的首地址
        • 4.初始化:
            • 4.1.全部初始化:
            • 4.2.部分初始化
            • 4.3.未初始化:
        • 5.定义空数组:
        • 6.引用:
        • 7.内存分配
        • 8.数组遍历:
        • 9.数组大小
  • 清零函数
    • 1.bzero
    • 2.memset (可扩展)
  • 字符数组
    • 1.概念
    • 2.形式:

for循环

基本结构变形

1.变形一:

int i = 0;
for(;表达式2; 表达式3)
{
语句块;
}

2.变形二:

int i = 0;
for(;表达式2; )
{
语句块;
表达式3;
}

3.变形三:

for( ;; ) // 死循环
{
if(表达式2)
{
语句块;
表达式3;
}
else
{
break;
}
}

while循环

Day9 C基础(循环一维数组)_第1张图片

格式:

定义循环变量并赋值;
while(判断条件) // 表达式
{
语句块;
// 循环完成之后需要改变定义变量的值
增值或减值语句;
}

执行顺序:

首先定义循环变量并赋值,然后判断是否符合条件,如果符合就进入循环执行语句块及增值减值语句,然后继续判断,直到判断条件不成立退出循环

do_while循环

Day9 C基础(循环一维数组)_第2张图片

格式:

定义循环变量并赋值;
do
{
语句块;
增值减值语句;
} while(终止条件);

先执行后判断

死循环:
for( ;; ){};
while(1){};
// 让程序卡死在这等
while(1);

循环控制语句

break:直接结束循环
continue:结束本次循环,继续下一次循环

数组

1.概念:

具有一定顺序的若干变量的集合

2.定义格式:

存储类型 数据类型 数组名[元素的个数];
int arr[5];

数组名:代表数组首元素的首地址,arr地址常量,不能为左值,不能被赋值

3.访问元素:

数组名[下标]; 下标是从零开始

访问第一个元素:arr[0];
访问第n个元素:arr[n-1];

注意数组越界问题

3.访问元素:

数组名[下标]; 下标是从零开始

访问第一个元素:arr[0];
访问第n个元素:arr[n-1];

注意数组越界问题

4.特点

1)数据类型相同
2)内存连续

5.注意

1.数组的数据类型就是数组元素的数据类型
2.数组名要符合标识符的命名规则
3.在同一函数中,数组名不要与变量名相同
int arr[5];
int arr; // 错误,在同一函数中,这样不被允许
4.下标从0开始,到 n-1 结束

6.分类

一维数组、二维数组

一维数组:只有一个下标的数组

1.格式:
存储类型 数据类型 数组名[元素个数];
2.访问元素:
数组名[下标];  下标从0开始
3.数组名:数组首元素的首地址
4.初始化:
4.1.全部初始化:
定义数组的同时全部初始化
int arr[5] = {1, 2, 3, 4, 5};
4.2.部分初始化
int arr[5] = {1, 2};   // 1 2 0 0 0
未初始化的元素值为0
4.3.未初始化:
随机值,需要单个元素赋值
int arr[5];   // 随机值
5.定义空数组:

1)可以全部初始化:
int arr[5] = {0 , 0 , 0, 0, 0};
2)可以部分初始化:
int arr[5] = {0};
3)这样也可以:
int arr[5] = {};

6.引用:

1.先定义后引用
2.每次只能引用一个数组元素arr[i],如果想要引用所有元素可以使用循环遍历
3.引用时防止数组越界,有时编译器不会报错
4.打印数组元素的地址用 %p 格式
printf(“%p\n”, arr[i]); arr[i] 是变量,不能以%p的格式打印,需要加取地址符 &
printf(“%p\n”, &arr[i]);

7.内存分配

Day9 C基础(循环一维数组)_第3张图片
一一对应的关系
Day9 C基础(循环一维数组)_第4张图片

8.数组遍历:

把数组下标作为循环变量,用 for 循环遍历

9.数组大小

计算数组的大小:

  1. 数据元素个数 * 数据类型的大小
  2. sizeof(数组名)
    计算元素个数:
  3. 直接观察
  4. sizeof(数组名)/sizeof(数据类型)

清零函数

1.bzero

#include
void bzero(void *s, size_t n);
功能:内存空间设置为零
参数:s:要清空的空间的首地址
n:字节大小
返回值:无

2.memset (可扩展)

#include
void *memset(void *s, int c, size_t n);
功能:将内存空间设置为0
参数:s:要清空的空间的首地址
c:要设置的值,设置为0
n:字节大小
返回值:要清空的空间的首地址

字符数组

字符数组可以存放字符串

1.概念

元素的数据类型为字符型的数组

2.形式:

char str[] = {‘a’, ‘b’, ‘c’}; // sizeof(str) == 3
char str[] = {“hello”}; // sizeof(str) == 6
char str[] = “hello”; // sizeof(str) == 6
char str[32] = “hello” // sizeof(str) == 32
char str[3];

你可能感兴趣的:(华清远见培训,c语言)