Это зависит от используемой вами архитектуры. По определению char - это тип, который имеет размер 1, поэтому sizeof (char) оценивается как 1, но это не означает автоматически, что это 8 бит.
Чтобы получить доступ к следующему значению, вы должны добавить sizeof (int) на указатель, чтобы ваш код работал независимо от архитектуры, на которой он используется.
Когда вы работаете с указателями, вы сообщаете компилятору, что значение, на которое указывает указатель, занимает пространство этого типа в память, и следующая вещь в памяти должна быть после этого количества единиц (байтов). Поэтому, если вы приведете указатель int к указателю char, вы должны добавить sizeof (int) к указателю char, чтобы иметь тот же эффект, что и при добавлении 1 к указателю int. Это связано с тем, что char по определению автоматически составляет 1 единицу, если вы будете использовать что-либо, кроме char, это не сработает, нет архитектурно-независимой спецификации размеров типов.