Página 1 de 1

Matriz em C

MensagemEnviado: 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
}
}

MensagemEnviado: 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

MensagemEnviado: 18 Jul 2008 11:32
por Pask
Um exemplo simples, por favor.

Re: Matriz em C

MensagemEnviado: 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...

MensagemEnviado: 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?

MensagemEnviado: 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?

MensagemEnviado: 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

MensagemEnviado: 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];