Página 1 de 1
Matriz em C

Enviado:
18 Jul 2008 09:07
por Pask
Amigos, por que o compilador C só aceita que a declaração de uma matriz seja imediatamente abaixo da instrução "while(true)" Vejam:
main( ){
while(true){
int y[2]={2,5}; //por que essa declaração tem que estar aqui?
....outras instruções
}
} // deste modo o compilador aceita
main( ){
while(true){
...outras instruções // deste modo o compilador não aceita
int y[2]={2,5}; //se houver alguma instrução entre while e a matriz, o compilador não aceita
....outras instruções
}
}

Enviado:
18 Jul 2008 10:13
por tcpipchip
Pq voce deve obdecer a semantica....
[void] funcao([void] tipo dado param)
{
tipo dado;
instrucao;
}
Ou seja, tipo dado deve ser declarado no inicio de bloco...no caso {
T+
TCPIPCHIP

Enviado:
18 Jul 2008 11:32
por Pask
Um exemplo simples, por favor.
Re: Matriz em C

Enviado:
18 Jul 2008 12:23
por Ander_sil
Exemplo simples...
Pask escreveu:main( ){
while(true){
int y[2]={2,5}; //por que essa declaração tem que estar aqui?
....outras instruções
}
} // deste modo o compilador aceita
esta ai...

Enviado:
18 Jul 2008 12:40
por Pask
Mais um questionamento: se eu declarar uma matriz do tipo char para apresentar um texto num lcd por exemplo eu faço:
char x[ ]={"meu texto"};
As aspas no início e no final do texto fazem parte da sintaxe para esse tipo de declaração de matriz string em C, ou seja, não é possível escrever um texto sem usar as aspas nesse tipo de declaração.
Mas, suponhamos que eu queira que um texto apareça entre aspas também no lcd, como, por exemplo:
char x[ ]={""com aspas""};
Se eu fizer isto, o compilador vai gerar uma mensagem de erro. Então, como eu poderia gerar um texto entre aspas para um lcd?

Enviado:
18 Jul 2008 13:17
por tchuky
use:
char x[ ]={""com aspas""};
nao sei muito de c, mas deve ser assim!!!
Pask escreveu:Mais um questionamento: se eu declarar uma matriz do tipo char para apresentar um texto num lcd por exemplo eu faço:
char x[ ]={"meu texto"};
As aspas no início e no final do texto fazem parte da sintaxe para esse tipo de declaração de matriz string em C, ou seja, não é possível escrever um texto sem usar as aspas nesse tipo de declaração.
Mas, suponhamos que eu queira que um texto apareça entre aspas também no lcd, como, por exemplo:
char x[ ]={""com aspas""};
Se eu fizer isto, o compilador vai gerar uma mensagem de erro. Então, como eu poderia gerar um texto entre aspas para um lcd?

Enviado:
18 Jul 2008 13:28
por Maurício
Salve, Pask.
Seu compilador deve ter algum defeito, ou é alguma configuração no chip do projeto, ou outra coisa qualquer, porque vc pode declarar variáveis em qualquer abertura de blocos, o que faz com que vc crie variáveis locais, dessa forma.
Isso daqui sim, é permitido e tem que funcionar:
- Código: Selecionar todos
void main( void )
{
int y[2]={2,5};
while(true)
{
....outras instruções
}
}
E no caso da declaração da string, vc precisa declarar caractere por caractere, e depois, finalizar a string manualmente, desse jeito:
- Código: Selecionar todos
char x[ ]={ '"', 'c','o','m',' ', 'a','s','p','a','s','"','\0' };
[]'s

Enviado:
18 Jul 2008 14:09
por ivan
Completando...
No caso de string, pode se fazer a declaração como ponteiro e acessar como uma matriz.
char *str = "texto qualquer";
char letra1, letra2, letra3;
letra1 = str[0];
letra2 = str[1];
letra3 = str[2];