数组的创建
数组是一组相同类型元素的集合。数组的创建方式:
type_t arr_name [const_n];
//type_t 是指数组的元素类型
//const_n 是一个常量表达式,用来指定数组的大小
int main()
{//创建一个数字组-存放整型-10个int arr[10]={1,2,3}//不完全初始化,剩下的元素默认初始化为0char arr2[5];int n=5;char ch[n];//errreturn 0;
}
int main()
{
//创建一个数组-存放整型-10个
// int arr[10]={1,2,3};
// char arr2[5]={'a',98};
// char arr3[5]="ab";
char arr4[]="abcdef";
printf("%d\n",sizeof(arr4));
printf("%d\n",strlen(arr4));
return 0;
}
sizeof计算arr4所占空间的大小
7个元素-char 7*1=7
strlen求字符串的长度
[a b c d e f\0]
6个字符不带\0
///1.strlen和sizeof没什么关联
2.strlen是求字符串长度-只能针对字符串求长度-库函数-使用引头文件
3.sizeof 计算变量、数组、类型的大小-单位是字节-操作符
//
int main()
{char arr1[]="abc";char arr2[]={'a','b','c'};printf("%d\n",sizeof(arr1));printf("%d\n",sizeof(arr2));printf("%d\n",strlen(arr1));printf("%d\n",strlen(arr2));
}
arr1 abc\0
arr2 abc
int main(){char arr[]="abcdef";//[a][b][c][d][e][f][\0]//printf("arr[3]=%c\n",arr[3]);int i=0;int len=strlen(arr);for(i=0;i<len;i++){printf("%c ",arr[i]);}return 0;
}
int main(){int arr[]={1,2,3,4,5,6,7,8,9,0};int sz=sizeof(arr)/sizeof(arr[0]);int i=0;for(i=0;i<sz;i++){printf("%d ",arr[i]);}return 0;}
int main()
{
int arr[]={1,2,3,4,5,6,7,8,9,10};
int sz=sizeof(arr)/sizeof(arr[0]);
int i=0;
for(i=0;i<sz;i++){
printf("&arr[%d]=%p\n",i,&arr[i]);
}
}
10进制 0-9
16进制:0-9 a b c d e f
数组在内存是连续存放的
int main(){
//int arr[3][4]={{1,2,3},{4,5}};
//int arr[5][6];
//int arr[]={1,2,3,4};
int arr[][4]={{1,2,3,4},{5,6,7,8}};//列不能省略
return 0;
}
int main(){int arr[3][4]={{1,2,3},{4,5}};int i=0;for(i=0;i<3;i++){int j=0;for(j=0;j<4;j++){printf("%d ",arr[i][j]);}printf("\n");}
打印地址
int main(){
int arr[3][4]={{1,2,3},{4,5}};
int i=0;
for(i=0;i<3;i++){
int j=0;
for(j=0;j<4;j++){
printf("&arr[%d][%d]=%p\n",i,j,&arr[i][j]);
}
}
//int arr[5][6];
//int arr[]={1,2,3,4};
//int arr[][4]={{1,2,3,4},{5,6,7,8}};//列不能省略
return 0;
}