Pointers can be used as arguments to the top-level function. It is important to understand how pointers are implemented during synthesis, because they can sometimes cause issues in achieving the desired RTL interface and design after synthesis. Refer to Vitis-HLS-Introductory-Examples/Modeling/Pointers on Github for examples of some of the following concepts.