1、一维数组的创建和初始化
类型数名符 数组名[常量表达式]
int arr1[10];注:[]中要给一个常量才可以,不能使用变量。
int arr2[10]={1,2,3,4,5,6};其他元素自动附0值
int arr3[]={1,2,3,4,5};可以不指定数组长度
char arr4[]={'a','b','c'};
char arr5[]="abcdef";
2、一维数组的使用
数组是使用下标来访问的,下标从0开始。
数组的大小计算:int sz=sizeof(arr)/sizeof(arr[0]);
3、数组在内存中是连续存放的
4、一维数组的指针访问
1)&数组名表示整个数组 ,sizeof(数组名)表示整个数组
其余都是首元素的地址
arr+i表示下标为i的地址,*arr+i表示下标为i的元素,*(arr+0)表示微首元素
*arr[]、*(arr+0)、arr[0]表示首元素
1、二维数组的创建和初始化
类型说明符 数组名[常量表达式1][常量表达式2]
float arr[3][3];
二维数组第一维可以省略,二维不可以省略
int a[ ][3]={1,2,3,7,8,9};
2、二维数组在内存中也是连续访问的
3、二维数组可以看成一个特殊的一维数组
三 、 数组作为函数参数的时候,不会把整个数组传递过去,只是把数组的首元素传递过去
strlen() 求的是字符串的实际长度(从开始到遇到第一个\0结束)
sizeof()返回的是变量名所占的内存
sizeof是一个操作符
strlen是函数
char *p = "abcdef";
printf("%d\n", strlen(p));//6
printf("%d\n", strlen(p+1));//5
printf("%d\n", strlen(*p));//err
printf("%d\n", strlen(p[0]));//err
printf("%d\n", strlen(&p));//随机
printf("%d\n", strlen(&p+1));//随机值
printf("%d\n", strlen(&p[0]+1));//5printf("%d\n", sizeof(p));//4
printf("%d\n", sizeof(p+1));//4
printf("%d\n", sizeof(p[0]));//1
printf("%d\n", sizeof(&p));//4
printf("%d\n", sizeof(&p+1));//4
printf("%d\n", sizeof(&p[0]+1));//4