Most straightforward is to do Gaussian elimination with the vectors as rows:
The vectors are linearly dependent, since the third vector is all zero. The rank of the matrix is 2: there are only two independent rows.
We can clean up a bit more by going to canonical:
The alternate procedure uses the vectors as columns:
The number of independent rows in this matrix, which is the number of independent columns in the first matrix, is again 2. So the rank is 2 whether I look at rows or columns.
Why is the rank the same whether I take the vectors as rows or columns? Well, since there are two independent vectors (let's take them as the first two,) I can take c3 whatever I want and only find unique values for c1 and c2 given c3. That means there must be two nonzero pivots. So the number of independent row vectors established in the first method must be the number of pivots in the second method. And the number of pivots is the number of independent row vectors in the second matrix.