Enviado em 28/06/2006 - 09:06h
Amigos, por favor, me corrijam onde eu estiver errado na sintaxe!
Vetor bidimensional:
int a[1][2]; = acesso à 3ª coluna da 2ª linha do vetor a
*((int *) a+12); = ponteiro p\ acesso à 3ª coluna da 2ª linha do vetor a
Aritimetica de ponteiro:
Precedência:
y = *p +1; = adiciona 1 ao valor da variavel apontada por p e atribui o valor à y
*p += 1; ou ++*p; = incrementa em 1 o valor da variavel apontada por p
*p++; = incrementa endereço do ponteiro p, pois expressão é
avaliada da direita p\ esquerda fazendo operador ++ ter precedência sobre *
(*p)++; = incrementa valor da variável apontada pelo ponteiro p, pois dá precedência de * sobre ++
p1 = p1 + 9; = incrementa ponteiro p1 em 9 endereços
return *p1 + 1; = soma um ao valor apontado por ponteiro p1
return *(p1 + 1); = incrementa o valor apontado por ponteiro p1 em um ou seu endereço?
int puts(const char *s) { = função puts() recebe argumento string
while(*s) putchar(*s++); = incrementa o endereço do ponteiro pois expressão é avaliada da direita p\ esquerda
return 1;
};
Ponteiros e Vetores:
char str[80], *p1;
p1 = str;
str[4]; ou p1+4; = acessa o 5º elemento do vetor str
str[4]; ou *(p1+4); = acessa o valor do 5º elemento do vetor str?
p1[j]; é o mesmo que *(p1 + j); = o ponteiro é indexado
int (*tab)[12]; = ponteiro p\ vetor tab de 12 int
int *tab[12]; = vetor tab de 12 ponteiros int
Ponteiros p\ funções:
int (*comp) (void*, void*); = declara ponteiro *comp p\ função c\ 2 argumentos void e retorna int
(*comp) (v[j], v[esq]); = chamada à função apontada por *comp
void (*options[ ]) (void) = { = declaração vetor de ponteiros de funções
...
};
Função retornando ponteiro:
int *comp(void*, void*); = declara função *comp que retorna ponteiro int
Conto c\ vcs.
Abraço à todos!
Vetor bidimensional:
int a[1][2]; = acesso à 3ª coluna da 2ª linha do vetor a
*((int *) a+12); = ponteiro p\ acesso à 3ª coluna da 2ª linha do vetor a
Aritimetica de ponteiro:
Precedência:
y = *p +1; = adiciona 1 ao valor da variavel apontada por p e atribui o valor à y
*p += 1; ou ++*p; = incrementa em 1 o valor da variavel apontada por p
*p++; = incrementa endereço do ponteiro p, pois expressão é
avaliada da direita p\ esquerda fazendo operador ++ ter precedência sobre *
(*p)++; = incrementa valor da variável apontada pelo ponteiro p, pois dá precedência de * sobre ++
p1 = p1 + 9; = incrementa ponteiro p1 em 9 endereços
return *p1 + 1; = soma um ao valor apontado por ponteiro p1
return *(p1 + 1); = incrementa o valor apontado por ponteiro p1 em um ou seu endereço?
int puts(const char *s) { = função puts() recebe argumento string
while(*s) putchar(*s++); = incrementa o endereço do ponteiro pois expressão é avaliada da direita p\ esquerda
return 1;
};
Ponteiros e Vetores:
char str[80], *p1;
p1 = str;
str[4]; ou p1+4; = acessa o 5º elemento do vetor str
str[4]; ou *(p1+4); = acessa o valor do 5º elemento do vetor str?
p1[j]; é o mesmo que *(p1 + j); = o ponteiro é indexado
int (*tab)[12]; = ponteiro p\ vetor tab de 12 int
int *tab[12]; = vetor tab de 12 ponteiros int
Ponteiros p\ funções:
int (*comp) (void*, void*); = declara ponteiro *comp p\ função c\ 2 argumentos void e retorna int
(*comp) (v[j], v[esq]); = chamada à função apontada por *comp
void (*options[ ]) (void) = { = declaração vetor de ponteiros de funções
...
};
Função retornando ponteiro:
int *comp(void*, void*); = declara função *comp que retorna ponteiro int
Conto c\ vcs.
Abraço à todos!