//文件名:poin_ary
//作 者:ccate
//时 间:2018.12
//描 述:指针与数组
#include<stdio.h>
int main00()
{
int a[10] = {1,2,3,4,5,6,7,8,9};
int *p = a;
p[3] = 100;//等同于下面一句,一般习惯这样写,简洁
//*[p+3] = 100;
int i;
for(i=0;i<10;i++)
{
printf("a[%d] = %d\n",i,a[i]);
}
return 0;
}
int main()
{
//c语言中所有数据类型都可以理解为一个char的数组
int a = 0x12345678;//0x开头,16进制,int是4个字节,可以视作4个char(12,34,56,78)的数组
char *p = (char *)&a;//为了防止出现warning,使用强制转换
printf("%x,%x\n", *p,p[1]);//结果:78,56,倒着放,小端对齐的概念
*p = 0;//相当于p[0],a[0]
printf("%x,%x\n", *p,p[1]);
p[2] = 0;
printf("%x\n",a);//结果:12005678
printf("--------------------\n");
char b[20] = {0};
int *p1 = (int *)&b;//防止warning强转
p1[3] = 0x12345678;//int占4个字符,3*4=12,从第13个位置也就是b[12]开始放(倒着放,小端对齐概念)
int i;
for(i=0;i<20;i++)
{
printf("b[%d] = %x\n",i,b[i]);
}
/*输出
--------------------
b[0] = 0
b[1] = 0
b[2] = 0
b[3] = 0
b[4] = 0
b[5] = 0
b[6] = 0
b[7] = 0
b[8] = 0
b[9] = 0
b[10] = 0
b[11] = 0
b[12] = 78
b[13] = 56
b[14] = 34
b[15] = 12
b[16] = 0
b[17] = 0
b[18] = 0
b[19] = 0
*/
return 0;
}