C语言数组学生笔记|“朝闻道”知识分享大赛

2301_80948168 2301_80948168 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

这是我参加朝闻道知识分享大赛的第九篇文章

C语言数组学生笔记

目录

C语言数组学生笔记

一、数组的概念

二、一维数组的创建和初始化

一维数组的创建

数组的初始化

三、一维数组的使用

数组的下标

数组元素的打印(遍历)

使用for循环向数组中输入数据

一维数组在内存中的存储

四、二维数组的创建和初始化

二维数组的创建

二维数组的初始化

五、二维数组的使用

二维数组的访问

使用for循环嵌套向二维数组中赋值和遍历

六、字符数组和字符串

字符数组

字符串

字符数组的输入


一、数组的概念

数组是一组相同类型元素的集合,这些元素在内存中连续存储。数组可以是一维的,也可以是多维的,常见的是一维数组和二维数组。在C语言中,数组是通过指定类型、数组名和元素个数来创建的。

二、一维数组的创建和初始化

  1. 一维数组的创建

    一维数组的创建语法如下:

    type arr_name[常量值];


    其中,type指定数组中存放的数据类型,可以是char、short、int、float等,也可以是自定义的类型。arr_name是数组的名字,可以根据需要任意取。[常量值]指定的是数组中元素的个数。

  2. 数组的初始化

    数组的初始化就是给定数组中元素的初始值,可以完全初始化也可以不完全初始化。

    • 完全初始化:

      int arr[5] = {1, 2, 3, 4, 5};

      此时,数组中的每个元素都被赋予了初始值。

    • 不完全初始化:

      int arr[5] = {1, 2, 3};

      此时,只有前三个元素被初始化,剩下的元素默认初始化为0。即arr[0] = 1, arr[1] = 2, arr[2] = 3, arr[3] = 0, arr[4] = 0。

    • 不指定长度,通过大括号内元素个数确定数组长度:

      
      	int arr[] = {1, 2, 3, 4, 5};
      
      此时,数组的长度由大括号内的元素个数确定。
      
    • 错误的初始化:

      int arr[5] = {1, 2, 3, 4, 5, 6};

      这是错误的,因为大括号内的元素个数大于数组定义时的长度。

三、一维数组的使用

  1. 数组的下标

    C语言规定数组是有下标的,下标从0开始。假设数组有n个元素,最后一个元素的下标是n-1。例如,对于数组int arr[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};,要访问下标为7的元素,可以使用arr[7]。

  2. 数组元素的打印(遍历)

    可以使用for循环来遍历数组并打印每个元素的值。例如:

    #include <stdio.h> 
    int main() { 
    int arr[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; 
    for (int i = 0; i < 10; i++) { 
    printf("%d ", arr[i]); 
    } 
    return 0; 
    }

     

  3. 使用for循环向数组中输入数据

    同样,可以使用for循环来向数组中输入数据。例如:

    
    
     
    #include <stdio.h> 
    int main() { 
    int arr[10]; 
    for (int i = 0; i < 10; i++) { 
    scanf("%d", &arr[i]); 
    } 
    for (int i = 0; i < 10; i++) { 
    printf("%d ", arr[i]); 
    } 
    return 0; 
    }

     

  4. 一维数组在内存中的存储

    数组在内存中是连续存放的。可以通过打印数组元素的地址来验证这一点。例如:

    #include <stdio.h> 
    int main() { 
    int arr[10] = {0}; 
    for (int i = 0; i < 10; i++) { 
    printf("%p\n", &arr[i]); 
    } 
    return 0; 
    }


    从输出结果可以看出,随着下标的增长,地址越来越大,且每两个相邻地址的差等于一个整型变量所占的字节数(通常为4个字节)。

  5. sizeof计算数组元素个数

    在遍历数组的时候,往往需要知道数组元素的个数。这时可以使用sizeof运算符来计算数组的大小,然后除以单个数组元素的大小来得到元素个数。例如:

    #include <stdio.h> 
    int main() { 
    int arr[10] = {0}; 
    int len = sizeof(arr) / sizeof(arr[0]); 
    printf("%d", len); 
    return 0; 
    }

     

四、二维数组的创建和初始化

  1. 二维数组的创建

    二维数组的创建语法如下:

    type arr_name[常量值1][常量值2];

    其中,type指定数组中存放的数据类型,arr_name是数组的名字,[常量值1]和[常量值2]分别指定数组的行数和列数。

  2. 二维数组的初始化

    • 不完全初始化:

      
      	int arr[3][5] = {1, 2};

      此时,只有第一行的前两个元素被初始化,剩下的元素默认初始化为0。

    • 完全初始化:

      int arr[3][5] = { 
      {1, 2, 3, 4, 5}, 
      {2, 3, 4, 5, 6}, 
      {3, 4, 5, 6, 7} 
      };

      此时,数组的每个元素都被赋予了初始值。

    • 按照行初始化:

      int arr[3][5] = {{1, 2}, {3, 4}, {5}};

      此时,每一行都被当作一个独立的数组来初始化,未初始化的元素默认初始化为0。

    • 行可以省略:

      
      	int arr[][5] = {1, 2, 3, 4, 5, 6, 7};

      此时,可以不指定行数,但一定要指定列数,否则编译器无法确定每行有多少元素。

五、二维数组的使用

  1. 二维数组的访问

    二维数组的访问也使用下标形式,通过行号和列号来唯一确定数组中的一个元素。例如,对于数组int arr[3][5] = {{1, 2, 3, 4, 5}, {2, 3, 4, 5, 6}, {3, 4, 5, 6, 7}};,要访问第二行第四列的元素,可以使用arr[1][3]。

  2. 使用for循环嵌套向二维数组中赋值和遍历

    可以使用嵌套的for循环来向二维数组中赋值和遍历。例如:

    
    	#include <stdio.h> 
    
    	int main() { 
    
    	int arr[3][5] = {0}; 
    
    	for (int i = 0; i < 3; i++) { 
    
    	for (int j = 0; j < 5; j++) { 
    
    	scanf("%d", &arr[i][j]); 
    
    	} 
    
    	} 
    
    	for (int i = 0; i < 3; i++) { 
    
    	for (int j = 0; j < 5; j++) { 
    
    	printf("%d ", arr[i][j]); 
    
    	} 
    
    	printf("\n"); 
    
    	} 
    
    	return 0; 
    
    	}

     

六、字符数组和字符串

  1. 字符数组

    字符数组是由一个一个的字符组成的数组。例如:
     

    
    	char arr1[5] = {'H', 'e'}; 
    
    	char arr2[8] = {'a', 98};

     

  2. 字符串

    字符串是由双引号引起来的一串字符。字符串的结束标志是一个\0的转义字符,在计算字符串长度时\0不算作字符串的内容。例如:

    
    
     
    char arr1[] = "Jack"; 
    char arr2[] = {'J', 'a', 'c', 'k'}; 
    printf("%s\n", arr1); 
    printf("%s\n", arr2);

     

  3. 字符数组的输入

    可以使用scanf函数从键盘输入字符数组(字符串)。例如:

    
    	#include <stdio.h> 
    
    	int main() { 
    
    	char name[256] = {0}; 
    
    	printf("please input name:"); 
    
    	scanf("%s", name); 
    
    	printf("

     

...全文

相关推荐

评论
收藏 已收藏
分享
返回顶部