указатель всего лишь указывает на область памяти, в которой хранится переменная. Это свойство указателя очень полезно, но есть еще одно, гораздо чаще применяемое в программировании. Указатель позволяет осуществить динамическое выделение памяти.
Лысачёв Пётр Сергеевич . Лекции по си++
Третья лекция по си++
12 марта.
Продолжение темы про указатели.
Операции с узкателями
int m[4] = {1, 2, 3, 4};
unsigned int* p = m;
unsigned int* d = p;
1) p++;
2) int i = p – d; ( i = 1, p = m[1])
4) *p = 4; (m {1, 4, 3, 4} )
5) p+=2; p--;
ip++; - увеличение на единицу целочисленного указателя.
Изменение указателя на единицу приводит к изменению его значения (смещения) на размер базового типа.
Все члены структур – публичные - и наследуются как публичные.
Алгоритмы же обычно выносят в классы.
struct { // описание структуры без описания типа
const char* p;
size_t len;
} s; // имя переменной структуры
struct {
const char* p;
size_t len;
} s = {“Str”, 3};
внимание! - чтобы вывести блоки отслеживания производительности (относительно того, что было) без указания категории сообщения , надо изменить log следующим образом:
пусть наш контроллер передаёт в представление какие-то данные - мы же желаем вывести ещё и статистику обращений к БД --тогда в
контроллере пишем что-то вроде:
$stat = CDbConnection::getStats(); // получаем статистику
// передаём в представление данные + статистику
$this->render('messagelist', array('msgs' => $msgs, 'editlinks' => $editlinks, 'stat' => $stat));
в представлении переданные данные по статики можно вывести в виде:
приведу пример кэширования представления одного из действий контроллера (подобный код следует писать в представлении) - сразу скажу, что для того, чтобы выполнить кэширование всей страницы - удобно использовать кэширование на уровне контроллера - например кэширование действия.
Но вернёмся к кэшированию фрагмента - в данном случае - представления дествия (данные из БД были получены в контроллере и переданы в виде массива):