指针面试题,很简单
指针在任何情况下都可以进行> , <,> =, <=, ==运算?
若不是,请说出理由。
[解决办法]
把指针看成一个基本的数据类型如int
就可以了
但是要考虑指针对应的类型,如果类型欠考虑容易的不到你想要的结果
答案:在任何情况下指针间都可以进行> , <,> =, <=, ==运算
[解决办法]
当然是不可以的。
我觉得这个面试题可能是在问这个问题
就是当两个指针指向同一段连续地址(例如数组)时,它们的比较才有意义
[解决办法]
不同类型的指针不强制类型转换是不可以比较大小的
没有意义的指针(比方说同类型的没有初始化的指针)比较是会有警告错误的
一般不在相同的连续空间内(比方说数组)的指针比较是没有意义的,虽然允许比较
[解决办法]
char str[] = "Hello, World! ";
char *p1 = str;
char *p2 = str;
Then it is meaningful with > , <, > =, <=, ==, !=, and p1 + n; p2 - n;
[解决办法]
任何指针都可以与 0也就是NULL 比较大小。
但是只有指针指向连续的存储空间(如数组)比较运算才有意义〉。。