В объективе C какая разница между типом * var и типом * var? - PullRequest
3 голосов
/ 27 июля 2010

О, радости быть новичком в управлении памятью!

Я получаю немного от кода Objective-C, хотя я понимаю основы указателей, я видел эти две разные конструкции безв состоянии действительно понять их разницу.

Может ли кто-нибудь просветить меня?

Отредактировав мой вопрос, конструкции не вели себя по-другому, вместо этого я получил еще один кусочек от многочисленных объявлений, которые я получил.Спасибо!

Ответы [ 3 ]

5 голосов
/ 27 июля 2010

Нет никакой разницы - это дело вкуса. Однако следует помнить, что указатель на самом деле всегда привязывается к имени, а не к типу. Итак, это:

Type* var1, var2;

Объявляет var1 как указатель на Type, тогда как var2 является , а не указателем. Это еще одна причина не объявлять несколько переменных в одном выражении.

Исторически нотация Type *var более распространена в C, где она читается как «var объявляется как указатель на Type», то есть «тип *var равен Type». В C ++, с другой стороны, Type* var более распространен и читается как «var объявлен как имеющий тип« указатель на Type »».

2 голосов
/ 27 июля 2010

Разницы нет вообще.

Но рассмотрим следующую строку:

Type* var1, var2;

Здесь только var1 - указатель на Type, но это легче увидеть, если вы напишите

Type *var1, var2; 
0 голосов
/ 27 июля 2010

Вы уверены, что это действует по-другому?Это кажется немного странным для меня.Даже если я не знаю об Objective-c, в C не будет разницы между

Type* var
Type * var
Type *var

Это просто вопрос синтаксиса / предпочтений.

За исключением случаев, когда вы неречь идет о объявлении переменной, но доступе это?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...