title: Declare and initialize pointer concisely (i. e. pointer to int)
body: <p>Given pointers to char, one can do the following:</p>
  
  <pre><code>char *s = "data";
  </code></pre>
  
  <p>As far as I understand, a pointer variable is declared here, memory is allocated for both variable and data, the latter is filled with <code>data\0</code> and the variable in question is set to point to the first byte of it (i. e. variable contains an address that can be dereferenced). That's short and compact.</p>
  
  <p>Given pointers to int, for example, one can do this:</p>
  
  <pre><code>int *i;
  *i = 42;
  </code></pre>
  
  <p>or that:</p>
  
  <pre><code>int i = 42;
  foo(&amp;i); // prefix every time to get a pointer
  bar(&amp;i);
  baz(&amp;i);
  </code></pre>
  
  <p>or that:</p>
  
  <pre><code>int i = 42;
  int *p = &amp;i;
  </code></pre>
  
  <p>That's somewhat tautological. It's small and tolerable with one usage of a single variable. It's not with multiple uses of several variables, though, producing code clutter.</p>
  
  <p>Are there any ways to write the same thing dry and concisely? What are they?
  Are there any broader-scope approaches to programming, that allow to avoid the issue entirely? May be I should not use pointers at all (joke) or something?</p>