For further clarification:
The * applies to any field of the
current Resource. TVs are treated as fields of the Resource and are accessed in the same way, but you may also use *pagetitle or *alias, and this is a field, not a TV. In contrast, a TV wiht the name "joe" will be accessed as *joe.
The + is always a placeholder. Placeholders are set by many things, automatically and manually. If you send a Chunk any parameters whatsoever, these each go into parameters. For instance,
[[$ChunkName?
¶m1=`value1`
¶m2=`value2`
]]
will generate placeholders named param1 and param2. These are accessed by
Doing this allows you to not worry about conflict between placeholders, fields, settings, etc. (The prefix char [ *, +, ++, $ ] helps to distinguish. Listing Snippets, as @sottwell stated, are the most common use of this, but placeholders may be set by and for a lot of reasons. Like in the example above, these are set my MODx when you make the call to the Chunk.
In a Snippet, you may make a placeholder yourself with this code:
$modx->setPlaceholder('name', 'value');
Then it may be accessed anywhere by using