Strictly speaking, this is a function parameter, not a function argument. A parameter is a variable declared inside a list of function parameters; the argument is the value passed to the function by the calling function. Therefore, the parameter QString &tableNameis passed by reference. But as an argument to the function &tableNamewill mean "address tableName".
Updated: As requested, here is a sample code to clarify the differences:
void f (double y) ;
f (99.0) ;
double y- parameter declaration; it looks like a variable declaration. yis a function parameter.
99.0 ; , double.