импортировать тензор в формате mat в тензор потока

Имя массива обычно оценивает адрес первого элемента массива, поэтому array и &array имеют одинаковое значение (но разные типы, поэтому array+1 и &array+1 будут not равно, если массив имеет длину более 1 элемента).

Есть два исключения: если имя массива является операндом sizeof или унарным & (адрес -of), имя относится к самому массиву. Таким образом, sizeof array дает размер в байтах всего массива, а не размер указателя.

Для массива, определенного как T array[size], он будет иметь тип T *. Когда / если вы увеличиваете его, вы переходите к следующему элементу массива.

&array оценивает один адрес, но с учетом того же определения создает указатель типа T(*)[size] - - т. е. это указатель на массив, а не на один элемент. Если вы увеличите этот указатель, он добавит размер всего массива, а не размер одного элемента. Например, с таким кодом:

char array[16];
printf("%p\t%p", (void*)&array, (void*)(&array+1));

Мы можем ожидать, что второй указатель будет 16 больше первого (потому что это массив из 16 символов). Поскольку% p обычно преобразует указатели в шестнадцатеричном виде, он может выглядеть примерно так:

0x12341000    0x12341010
7
задан gariepy 3 June 2016 в 18:01
поделиться