а в чем разница я понять не могу? значение строки же пустое или как это работает?
null, тут и 0 Си не одно и тоже, если очень интересно, можешь погуглить про NULL и null_ptr, там скорее более исчерпывающий ответ найдешь. тут null(если это коректно так назвать) объект, указывающий на нулевое значение, является нулевым указателес. А "" - просто пустая строка, располагающаяся совершенно по другому адресу. Как минимум поэтому null != ""