一、指针的类型和指针所指向的类型有什么区别?
从语法上看,只要把指针声明语句里指针的名字去掉,剩下的部分就是这个指针的类型,只要把指针声明语句中的指针名字和名字左边的指针声明符“*”去掉,剩下的就是指针所指向的类型。
二、指针±整数和指针-指针适用的情况和运算的结果是什么?
指针±整数只能用于指向数组中某个元素的指针,加减代表移动指针指向左边或者右边的元素;指针-指针这两个指针必须指向同一个数组中的元素,指针相减的结果的类型是ptrdiff_t,是一种有符号的整数类型。
三、常量指针和指针常量有什么区别?
const在*之前是常量指针,指针指向的内容是常量,不可修改,但是指针本身可以修改,可以指向不同的地址;
const在*之后是指针常量,指针本身是个常量,不可修改,p不能再指向其他的地址,但是指针指向的内容可以修改
四、NULL总是等于0吗?
不,NULL并不必须被存为一个整型值0,尽管这是NULL最常见的存储方式。
五、指针数组和数组指针有什么区别?
指针数组typename *p[n];定义了一个数组,该数组包含了n个指针变量p[0]、p[1]……p[n-1]
数组指针typename (*p)[n];定义了一个指向含有n个数据元素的二维数组的指针
六、sizeof和strlen有什么区别?
sizeof是求数据类型所占空间的大小;strlen是求字符串长度的函数。
七、为什么int*、float*、long*都占4个字节?
因为它们都是指针,在32为计算机中,指针占4个字节。
八、函数指针与指针函数的区别是什么?
函数指针:即指向这个函数的指针,数据类型 (*fun)(参数)
指针函数:返回值是指针的函数,数据类型 *fun(参数)