数组(1)

数组

一数组的概念

一组具有相同数据类型的元素的集合

元素:组成数组的基本单位

注意:同一个数组只能存储同一种数据类型的元素

可以是任意类型的数据

数组大小

又叫数组长度

数组里可存储的元素个数

定义数组时:常量,宏定义

宏定义——替换

define shi 10;

之后的代码中所有的10都可以用shi来表示

const修饰符==》常量

const int n=10;

//n就是常量了,一般不能修改

C语言与c++中const的区别

C语言的const是假的

因为是可以通过指针来修改这个常量

c++的const是真的

而c++中的就不能被修改

数组的内存

1.数组的内存是连续的

2.数组的长度是有限的

3.数组元素类型是相同的

4.数组长度可以用sizeof()求出来,求得的是字节数,而不是元素个数

元素个数=数组正题所占的字节数/单个元素所占的字节数

数组的初始化与赋值

数组赋值:——四种方式
//第一种全部给初始值
	int a[4] = { 1,2,3,4 };
	
	//第二种给部分初始值
	int a[4] = { 1,2 };
	//未赋值的就是0

	//第三种全部不给值
	int a[4] = {};
	//全部为0

	//第四种不定义数组长度
	int a[] = {1,2};
	//必须给值初始化
	//给多少个数,长度就是多少

数组元素的访问

int a[] = { 1,2,3 };
	int str[3] = { 4,5,6 };
	printf("%d\n",sizeof(str));//输出12
	printf("%d\n",sizeof(str)/sizeof(int));//输出3
	printf("%d\n",a[0]);
	printf("%d\n",a[1]);
	printf("%d\n",a[2]);
	printf("%d\n", a[3]);

使用循环,遍历数组

遍历:将整个数组过一遍
//第一种遍历方式
int a[5] = { 2,6,7,3,4 };
	for (int i = 0; i < 5; i++)
	{
		printf("%d ", a[i]);
	}

//第二种遍历方式
int a[5] = { };
	for (int i = 0; i < sizeof(a) / sizeof(int); i++)
	{
		a[i] = i;
	}
	for (int i = 0; i < 5; i++)
	{
		printf("%d ", a[i]);
	}

size_t == unsigned int

typedef ——给类型取别名

typedef int kiss;

typedef int xxx;
xxx a=10;
//意思就是 int a=10

typedef int str [5];
str a={1,2,3,4,5};

字符数组

字符数组也是数组,只不过元素类型是字符

1.初始化与赋值

普通数组形式

2.可以使用字符串初始化,可以省略大括号

char arr[10]={'a','s'}
//和普通数组赋值一样

char arr2[5]="addw";
char arr3[5]="12345"//是错的
//因为在结尾默认加上\0要占一个位
// \0 :结束符,标记字符串结束
//每一个字符串数组都会在末尾加上\0
char arr4[4]="abc\0"

printf("%d",sizeof("abc"));
//输出结果为4,加了\0的

3.直接打印整个字符数组

char arr[6] = { 'a','d','5',68,'\101' };
	printf("%s\n", arr);
	cout << arr << endl;
//打印结果为:ad5DA
//从头开始到'\0'结束
char arr[7] = { 'a','d','5','\0',68 ,'\101'};
	printf("%s\n", arr);
//打印ad5
	

char arr[]="abcd\o1234fr";
printf("%s",arr);
//输出 abcd
//     34fr
// 因为\012对应的ASCII码是\n,换行符

\123——\后面跟三位数字,表示一个八进制数

\——转义字符,要跟后面的东西

posted @ 2020-11-18 23:18  kisfly  阅读(116)  评论(0编辑  收藏  举报