#include<stdio.h>
#include<string.h>
#include<stdlib.h>
main()
{
int i;
char *p = NULL;
char array1[] = "environment";//array1作为字符数组,是11个字节,作为字符串是12个字节
int length = strlen(array1);
int size = sizeof(array1);
printf("array1的字符长度:%d \n",length);//11
printf("array1的字符串内存块的大小:%d \n",size);//12
printf("array1:%s \n", array1);
for (i = 0; i < length; i++)
{
printf("%c ", array1[i]);
}
printf("\n");
p = array1;
for (i = 0; i < length; i++)
{
printf("%c ", *(p+i));
}
printf("\nhello world \n ");
system("pause");
return;
}
数组是固定大小内存块的别名,strlen长度不包括“\0”
sizeof指的是内存块的大小;
array1是一个指针,只读的常量,无法进行更改操作;内存首地址不能更改的原因是析构内存的时候,保证array1所指的内存空间能够被完全释放。
故常量array1不能进行加减操作——array1++;