C语言之数组
来源:互联网 发布:浙大网新 人工智能龙头 编辑:程序博客网 时间:2024/05/07 17:51
1.解析一维数组的创建和初始化
一维数组的创建:
数组的元素类型 数组名 [常量表达式]
1.一维数组的初始化:
数组的初始化是指,在创建数组的同时给数组的内容一些合理初始值(初始化)。
定义数组大小并全部初始化:int arr1[5]={1,2,3,4,5};
不定义数组大小直接初始化:int arr2[]={1,2,3,4,5};
定义数组大小并不完全初始化:int arr3[5]={1,2,3}; //其余元素为0;
字符数组,定义数组大小并全部初始化:char arr4[3] = {'a',98, 'c'};
字符数组,并不完全初始化:char arr5[] = {'a','b','c'};
字符数组,其中存放字符串:char arr6[] = "abcdef";//数字中共有7个字符,最后一个为“\0”最为结束标志;
字符数组,并不完全初始化:char arr5[] = {'a','b','c'};
字符数组,其中存放字符串:char arr6[] = "abcdef";//数字中共有7个字符,最后一个为“\0”最为结束标志;
2.一维数组的使用
“[]”是解引用操作符,就是数组访问的操作符。数组是使用下标来访问的,下标从0开始。
比如:#include <stdio.h>
int main()
{
{
int arr[10] = {0};
int i = 0;
for(i=0; i<10; i++)
{
arr[i] = i;
}
for(i=0; i<10; ++i)
{
printf("%d ", arr[i]);
}
return 0;
}
{
printf("%d ", arr[i]);
}
return 0;
}
3.一维数组的存储
一维数组在内存中是连续存放的,随数组下标的增长,元素的地址也在有规律的递增。
4.一维数组的指针访问
数组的数组名代表数组首元素的地址,如:int arr[]={1,2,3,4,5};
printf("%p\n",arr);//打印出来的是数组首元素的地址
arr[i]和*(p+i)等价,都代表数组的第i个元素。
5.解析二维数组的创建和初始化
二维数组的创建:
数组的元素类型 数组名 [常量表达式][常量表达式]
二维数组的初始化:定义数组大小并全部初始化:int arr1[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
或int arr2[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
不完全定义数组大小初始化:int arr3[][4]={1,2,3,4,5};
或int arr6[][4]={{1,2},{3,4,5}};
定义数组大小并不完全初始化:int arr5[3][4]={1,2,3,4,5};
或int arr6[3][4]={{1,2},{3,4,5}};6.二维数组的使用
二维数组的使用也是通过下标的方式,如:#include <stdio.h>
int main()
{
int main()
{
int arr[3][4] = {0};
int i = 0;for(i=0; i<3; i++){int j = 0;for(j=0; j<4; j++){arr[i][j] = i*4+j;}}for(i=0; i<3; i++){int j = 0;for(j=0; j<4; j++){printf("%d ", arr[i][j]);}}}return 0;
7.二维数组的存储
二维数组在内存中也是连续存放的,随数组下标的增长,元素的地址也在有规律的递增。
8.二维数组的指针访问
#include <stdio.h>
int main()
{
int arr[3][4] = {0};
int *p = &arr[0][0];
int i = 0;
for(i=0; i<3*4; i++)
{
p[i] = i;
}
for(i=0; i<3; i++)
{
int j = 0;
for(j=0; j<4; j++)
{
printf("%d ", arr[i][j]);
}
}
return 0;
}
阅读全文
0 0
- C语言之数组
- c语言之数组
- C语言之数组
- C语言之数组
- C语言之数组
- C语言之数组
- C语言之数组
- C语言之数组
- c语言之数组
- C语言之数组
- C语言之数组
- c语言之数组
- C语言基础之数组
- C语言学习之数组
- c语言例题之数组
- 4.C语言之数组
- C语言小贴士之数组
- C语言之二维数组
- repo的一些常用命令
- 数据压缩原理实验6_实验报告
- IOS多线程-NSthread实现生产者与消费者模式
- What is the diference between putting a property on application.yml or bootstrap.yml in spring boot?
- unity问题与开发技巧汇总(转载专用)
- C语言之数组
- JZOJ 1492. 烤饼干
- Dragonboard410c Android源代码编译:ubuntu16.04 安装使用不同版本JDK
- Windows平台EasyDarwin流媒体服务器部署及使用
- 当坚持不下去的时候
- 利用opencv将raw转换为rgb
- Recommendation System Algorithms
- 引入padding后导致div布局混乱解决办法
- Intellij idea破解办法