关于fwrite的问题

#fwrite(&length, sizeof(length), 1, fp); 这句话中的length是传地址吗? 不是很懂这行代码


#include <stdio.h>
#include <string.h>
#include <float.h>
#include <stdlib.h>
#include <limits.h>
#include <math.h>
#include <string.h>
#include <ctype.h>
#include <time.h>
#include <stdbool.h>
#include <stdio.h>
#include<stdio.h>
#include<stdlib.h>
#define LEN 81
#define BUFSIZE 4296

int main(void)
{
    FILE* fp = NULL;
    char a[] = "cx.txt";
    char name[30];
    if (fopen_s(&fp, a, "wb"))
    {
        printf_s("%s打不开\n", a);
        exit(EXIT_FAILURE);
    }
    gets_s(name, 30);
    size_t length = strnlen_s(name, sizeof(name));
    fwrite(&length, sizeof(length), 1, fp);
    fwrite(name, sizeof(char), length, fp);
    fclose(fp);
    fp = NULL;
    return 0;
}