this post was submitted on 13 Jul 2023
666 points (96.6% liked)

Programmer Humor

32426 readers
625 users here now

Post funny things about programming here! (Or just rant about your favourite programming language.)

Rules:

founded 5 years ago
MODERATORS
 
you are viewing a single comment's thread
view the rest of the comments
[–] IHeartBadCode@kbin.social 9 points 1 year ago

char**

So that you can have an array of strings. It's useful to remember that in C arrays and pointers are exactly the same thing, just syntax sugar for however you want to look at it. There are a few exceptions where this isn't true however:

  1. Argument of the & operator
  2. Argument of sizeof
  3. C11 has alignof which decay is a no-no
  4. When it's a string literal of char[] or wide literal of wchar_t[], so like char str[] = "yo mama";

But int** is just an array of int*, which likewise int* can just be an array of int. In the picture here, we have int** anya that is an array of int* with a size of 1, int* anya that is an array of int with a size of 1, and then of course our int there being pointed to by int* anya.