浅谈对c语言中对一维数组的认识
2016-05-18 23:58
274 查看
今天复习c语言中数组的基本知识。简单的总结一下
所谓数组,就是相同数据类型的元素按一定顺序排列的集合,就是把有限个类型相同的变量用一个名字命名,然后用编号区分他们的变量的集合,这个名字称为数组名,编号称为下标。组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。数组是在程序设计中,为了处理方便,
把具有相同类型的若干变量按有序的形式组织起来的一种形式。这些按序排列的同类数据元素的集合称为数组。
在C语言中, 数组属于构造数据类型。一个数组可以分解为多个数组元素,这些数组元素可以是基本数据类型或是构造类型。因此按数组元素的类型不同,数组又可分为数值数组、字符数组、指针数组、结构数组等各种类别。
特点:数组的地址是一段连续的空间并且数组类型都相同
定义:数据类型 数组名[元素个数]
#include <stdio.h>
#define N 5
//不允许如下定义数组,虽然
void fun(int n)
{
int arr
;
int i=0;
for(i;i<n;i++)
{
printf("%d\n",arr[i]);
}
}
int main(int argc, char const *argv[])
{
//注意:数组元素个数:只能是字面常量值 宏变量 只读变量,不能是一般变量
int a[5]={0}; //所有数组元素都为零
int b
;
const int n=7;
int c
;
//不支持如下定义数组,虽然编译器不会报错
int num=6;
int d[num];
//fun(3);编译器会报错
//数组名与数组元素之间的关系
//利用下标值获取数组的每个元素值
//a[i]; //i数组下标。从0,1,2....
int e[5];
/*1.数组名表示数组的第一个元素地址*/
printf("%X\n",e);//BFB930E4
printf("%X\n",&e[0]);//BFB930E4
printf("%X\n",&e);//表示数组一段空间
printf("%X\n",e+1); //输出数组的第二个元素地址 BFD14A68
printf("%X\n",&e[1]); //输出数组的第二个元素地址 BFD14A68
printf("%X\n",&e+1); //跨过整个数组的空间
//访问每个数组元素的起始地址
int i=0;
for(i=0;i<5;i++)
{
printf("%X\n",e+i);
}
//输出每个数组元素
for(i=0;i<5;i++)
{
printf("%d\n",e[i]);
}
/*
注意 数组名相当与一个只读指针变量 虽然是指针,但在计算 sizeof(数组名) 时不能当成指针
数组名不能修改
*/
int ar1[4];
int ar2[5];
//ar1=ar2;这种写法错误
//ar1++;也错误
//数组的初始化
int f[]={1,2,3}; //根据初始化的值确定数组元素个数
for(i=0;i<5;i++)
{
scanf("%d",&e[i]);
}
//输出数组元素
for(i=0;i<5;i++)
{
printf("%d\n",e[i]);
}
return 0;
}
所谓数组,就是相同数据类型的元素按一定顺序排列的集合,就是把有限个类型相同的变量用一个名字命名,然后用编号区分他们的变量的集合,这个名字称为数组名,编号称为下标。组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。数组是在程序设计中,为了处理方便,
把具有相同类型的若干变量按有序的形式组织起来的一种形式。这些按序排列的同类数据元素的集合称为数组。
在C语言中, 数组属于构造数据类型。一个数组可以分解为多个数组元素,这些数组元素可以是基本数据类型或是构造类型。因此按数组元素的类型不同,数组又可分为数值数组、字符数组、指针数组、结构数组等各种类别。
特点:数组的地址是一段连续的空间并且数组类型都相同
定义:数据类型 数组名[元素个数]
#include <stdio.h>
#define N 5
//不允许如下定义数组,虽然
void fun(int n)
{
int arr
;
int i=0;
for(i;i<n;i++)
{
printf("%d\n",arr[i]);
}
}
int main(int argc, char const *argv[])
{
//注意:数组元素个数:只能是字面常量值 宏变量 只读变量,不能是一般变量
int a[5]={0}; //所有数组元素都为零
int b
;
const int n=7;
int c
;
//不支持如下定义数组,虽然编译器不会报错
int num=6;
int d[num];
//fun(3);编译器会报错
//数组名与数组元素之间的关系
//利用下标值获取数组的每个元素值
//a[i]; //i数组下标。从0,1,2....
int e[5];
/*1.数组名表示数组的第一个元素地址*/
printf("%X\n",e);//BFB930E4
printf("%X\n",&e[0]);//BFB930E4
printf("%X\n",&e);//表示数组一段空间
printf("%X\n",e+1); //输出数组的第二个元素地址 BFD14A68
printf("%X\n",&e[1]); //输出数组的第二个元素地址 BFD14A68
printf("%X\n",&e+1); //跨过整个数组的空间
//访问每个数组元素的起始地址
int i=0;
for(i=0;i<5;i++)
{
printf("%X\n",e+i);
}
//输出每个数组元素
for(i=0;i<5;i++)
{
printf("%d\n",e[i]);
}
/*
注意 数组名相当与一个只读指针变量 虽然是指针,但在计算 sizeof(数组名) 时不能当成指针
数组名不能修改
*/
int ar1[4];
int ar2[5];
//ar1=ar2;这种写法错误
//ar1++;也错误
//数组的初始化
int f[]={1,2,3}; //根据初始化的值确定数组元素个数
for(i=0;i<5;i++)
{
scanf("%d",&e[i]);
}
//输出数组元素
for(i=0;i<5;i++)
{
printf("%d\n",e[i]);
}
return 0;
}
相关文章推荐
- 带你玩转Visual Studio——VC++的多线程开发
- C++中如何正确的开辟一个动态的二维数组
- C++模板元入门(入坑)体验
- c++/string的构造析构函数
- C语言代码风格
- C语言代码风格
- c语言学习笔记10之for 循环
- C++随笔:.NET CoreCLR之corleCLR核心探索之coreconsole(1)
- C++之拷贝构造函数
- 【C++】:C++之内联函数(inline)
- c++/#if _MSC_VER > 1000 #pragma once #endif 作用
- 【C++】:C++之C++的引用
- 【C++】:C++中的引用
- C语言可以给字符数组赋值的方法
- 格式化 C语言源码——命令indent
- C/C++ memmove与memcpy的区别及实现
- 适配器模型-c++实现
- 四则运算
- C语言任意交换两种类型变量
- 浅谈c++的继承