c语言的指针类型。都有那些?在内存中如何分配?
4个回答
展开全部
基类型加*
基类型有多少,指针类型就有多少。
计算机为指针分配时都是4字节,不分类型
如:
char *p;
int *p;
float *p;
double *p;
struct student *p;
union student *p;
void *p;
等等,占的内存都是4字节
不懂的追问
基类型有多少,指针类型就有多少。
计算机为指针分配时都是4字节,不分类型
如:
char *p;
int *p;
float *p;
double *p;
struct student *p;
union student *p;
void *p;
等等,占的内存都是4字节
不懂的追问
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
任何存在的数据类型都可以有指针,在内存中分配可以用 malloc/relloc函数申请内存空间
使用完以后记得用free
使用完以后记得用free
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
计算机内存分为三个区域,静态区、栈区、堆区;静态区存放常数、静态变量、全局变量;栈里面存放函数内定义的局部变量;堆区存放程序动态生成的对象,例如malloc和new产生的对象。指针类型和一般变量没有区别,在内存中分配的位置也是上面说的那个方式。
也就是说全局变量的指针放在静态区,函数内部定义的指针放在栈里,用new和malloc申请的指针(注意这里是指针而不是指针的所指的对象,虽然指针的所指的对象也是放在堆里的)放在堆里。而指针因为里面存放的是地址,所以指针的大小就是由地址的长度来决定了。也就是说32位机的指针大小就是32位。
也就是说全局变量的指针放在静态区,函数内部定义的指针放在栈里,用new和malloc申请的指针(注意这里是指针而不是指针的所指的对象,虽然指针的所指的对象也是放在堆里的)放在堆里。而指针因为里面存放的是地址,所以指针的大小就是由地址的长度来决定了。也就是说32位机的指针大小就是32位。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询