您的位置:首页 > 其它

关于指针的一些总结

2016-05-26 12:27 288 查看
对于动态分配的内存在使用前一定要检验是否分配成功,在使用完成之后进行释放。
检验方法:int *p = (int *)malloc(10 * sizeof(int));
if (p == NULL)
{
printf("out of memory\n");
return 1;
}指针和数组的对比:
指针用来保存数据的地址,数组保存数据,数组名代表数组的首元素地址,&a才是整个数组的地址。
指针间接访问数据,数组直接访问数据,但其本质上都是数组名加上偏移地址。
指针用于动态数据结构,数组存储固定数目类型相同的元素。
指针使用malloc和free完成创建和释放,数组是隐式的。
指针通常指向匿名数据,数组自身是数组名。
数组指针是指向一个数组的指针。指针数组是是一个数组,里面的每一个元素都存放地址。
指针加一是加上指针所指向的类型。
讲一个数组指针强制类型转换再加一便不是加的是数组的大小,而是依据类型转换而定。
比如int (*p)[10] 转换成(int *)p+1 便是加4.
大小端存储:
11 22 33 44
大端存储为11 22 33 44
小端存储 44 33 22 11
判断方法:
(1) #include<stdio.h>
int main()
{
int a=1;
if(1==*(char*)&i)
{
printf("小端\n");
}
else printf("大端");
return 0;
}

(2)#include<stdio.h>
union un
{
int i;
char c;
}
int main()
{
union un un={0};
un.i=1;
if(un.c==1)
{
printf("小端\n")
}
else
printf("大端\n");
return 0;
}a[2][2]={(1,2),(3,4)}此种表达式为逗号表达式,真实内容为 2,4,0,0

二维数组的地址传递方式有俩中 1 二维数组的方式 2指针数组的数组名的方式

本文出自 “fun” 博客,请务必保留此出处http://10725723.blog.51cto.com/10715723/1716307
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: