Q:如何确定指针类型?
A:声明语句中除指针名字外的部分即为指针类型。
例:int* ptr; //指针类型为int*
char * ptr; //指针类型为char*
int* (* ptr)[4];//指针类型为int*( *)[4]
Q:指针所指向的类型如何确定?
A:去掉指针声明语句中的指针名和指针名左边的指针说明符;
例:int*ptr //指针所指向的类型为int
char*ptr //指针所指向的类型为char
int**ptr //指针所指向的类型为int*
int(*ptr)[3] //指针所指向的类型为int()[3]
int*(ptr)[4] //指针所指向的类型为int()[4]
Q:指针的值指的是什么?
A:指针的值即为指针所指向的内存区或者地址,是指针本身存储的数值,这个值被编译器当做一个地址。
Q:指针所占的内存为多大?
A:在32位的平台上,指针本身占四个字节的长度,可由函数sizeof测得。
Q:指针常量和常量指针的区别?
A:指针常量即指针本身是一个常量,不可修改,但其指向的内容(即地址)可以修改;
常量指针即指向一个常量的指针,即指向的是常量,不可修改,指针本身可以修改。
Q:NULL和0
A:NULL被定义为0或者”(void*)0”,两个值几乎相同,纯粹的0或者一个void指针都能自动被转换成所需的任何类型的指针。
Q:NULL和零是否相等?
A:就两者的比较结果来说,NULL确实为0;如果就存储方式和整型值来说,NULL并不必须被存储为整型值0。
Q:空指针的用法有哪些?
A:(1)用空指针终止对递归数据结构的间接引用;(2)用空指针进行函数调用失败的返回值;(3)用空指针做警戒值。
Q:万能指针的用途有哪些?
A:void指针指向某个对象,但该对象不属于任何类型。C语言中任何时候都可以用其他类型的指针来代替void指针,也可以用void指针来代替其他类型的指针。
Q:指针数组和数组指针。
A:指针数组符合一般数组的特性,除其元素为指针外,和一般数组没有区别;数组指针指的是指向数组的指针。
数组与指针
最新推荐文章于 2025-02-08 09:00:00 发布