Recentemente, decidi que só preciso aprender C / C ++, e há uma coisa que realmente não entendo sobre ponteiros ou, mais precisamente, sua definição.
Que tal estes exemplos:
int* test;int *test;int * test;int* test,test2;int *test,test2;int * test,test2;
Agora, no meu entendimento, os três primeiros casos estão todos fazendo o mesmo: Teste não é um int, mas um indicador para um.
O segundo conjunto de exemplos é um pouco mais complicado. No caso 4, teste e test2 serão ponteiros para um int, enquanto no caso 5, apenas teste é um ponteiro, enquanto test2 é um int "real". E o caso 6? Mesmo que o caso 5?
int*test;?
Foo<Bar<char>>No >>tinha de ser escrita > >para não ser tratado como um shift direita.
++operador de incremento não pode ser dividido por um espaço, os identificadores não podem ser divididos por um espaço (e o resultado ainda pode ser válido para o compilador, mas com comportamento de tempo de execução indefinido). As situações exatas são muito difíceis de definir considerando a bagunça de sintaxe que é C / C ++.