Cdecl: C Gibberish ↔ English
The biggest problem with C&#x27;s pointer syntax is that it&#x27;s prefix.  If pointers were suffix, perhaps using a character that isn&#x27;t doing primary duty as the multiplication operator, there wouldn&#x27;t be any need for a Gibberish to English translator.  Maybe think of @ as &quot;address&quot;:<p><pre><code>    int i;          &#x2F;&#x2F; variable which is integer
    int p@;         &#x2F;&#x2F; pointer that returns integer
    int f();        &#x2F;&#x2F; function returns integer
    int f@();       &#x2F;&#x2F; pointer to function
    int f()@;       &#x2F;&#x2F; funtion that returns pointer
    int a[10];      &#x2F;&#x2F; array of ten integers
    int a[10]@;     &#x2F;&#x2F; array of ten pointers
    int a@[10];     &#x2F;&#x2F; pointer to and array
    int a[10]()@;   &#x2F;&#x2F; array of ten functions that return a pointer
</code></pre>
Of course C is stuck with accidents&#x2F;decisions made 50 years ago.  But a language like Go turns all the declaration syntax on its head and still doesn&#x27;t solve the problem.  Rob Pike&#x27;s blog post says as much (scroll to the bottom section on pointers):<p><a href="https:&#x2F;&#x2F;go.dev&#x2F;blog&#x2F;declaration-syntax" rel="nofollow">https:&#x2F;&#x2F;go.dev&#x2F;blog&#x2F;declaration-syntax</a><p>He suggests Pascal&#x27;s caret syntax (^), which wouldn&#x27;t work if it was also used as the binary xor operator.