Controlpoint array for NURBS surfaces

When specifying a Controlpnt array for the Nurbs SURFACE,which has 4 ctrlpoints in u and 4 in v,The array ctrlpts[4][4][3], is used,according to the examples.
However this leads to 4*4 =16 elements in the array, however there are a total of 8 control points.My question is which indices in the array are used for specifying the control points?



It’s a surface! You have a 4x4 ‘grid’ where each node is a controlpoint.