killezio Posted January 27, 2016 at 03:41 PM Report Share #592616 Posted January 27, 2016 at 03:41 PM (edited) não sei que outro titulo lhe dar, mas aqui está a minha questão, eis o meu código: if(*modelo[e][k++] != *dic[i][k]) eu estou a assumir que o <k> em <*dic[k]> já está incrementado por <*modelo[e][k++]>. estou certo? Edited January 27, 2016 at 03:43 PM by killezio Link to comment Share on other sites More sharing options...
killezio Posted January 27, 2016 at 04:05 PM Author Report Share #592624 Posted January 27, 2016 at 04:05 PM outra dúvida, eu posso fazer isto? for (k = 0 && a = 0;k < L;k++ && a++){ se não, como se faz? Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted January 27, 2016 at 05:32 PM Report Share #592672 Posted January 27, 2016 at 05:32 PM não sei que outro titulo lhe dar, mas aqui está a minha questão, eis o meu código: if(*modelo[e][k++] != *dic[i][k]) eu estou a assumir que o <k> em <*dic[k]> já está incrementado por <*modelo[e][k++]>. estou certo? não existe uma diferença muito significativa no uso do incremento como "prefixo" ou como "sufixo" em vez de estar a escrever um texto de metro e meio, o melhor é apresentar um exemplo: #include <stdio.h> int main(void) { int valor; valor = 0; printf("incremento como prefixo : %d\n", ++valor); // 1 printf("resultado final : %d\n", valor); // 1 valor = 0; printf("incremento como sufixo : %d\n", valor++); // 0 printf("resultado final : %d\n", valor); // 1 return 0; } outra dúvida, eu posso fazer isto? for (k = 0 && a = 0;k < L;k++ && a++){ se não, como se faz? em C, existe um operador binário em que as duas expressões avaliadas mas o resultado final é o resultado da segunda avaliação. como é um operador, pode ser usado como "cola" para teres mais do que uma expressão num local onde é esperado ter somente um resultado. o que pretendes fazer é realizado da seguinte forma: for (k = 0, a = 0; k < L; k++, a++) {[/Code] IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
killezio Posted January 27, 2016 at 08:22 PM Author Report Share #592683 Posted January 27, 2016 at 08:22 PM muito obrigado pelo esclarecimento. também, a diferença do k++ e ++k eu percebo. o que eu estava a pensar era, por exemplo se k = 2 e eu usasse essa linha, para "*modelo[e][k++]" k seria 2 e para "dic[k]" k seria já 3. a minha dúvida é se isso acontece Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted January 27, 2016 at 09:32 PM Report Share #592686 Posted January 27, 2016 at 09:32 PM (edited) muito obrigado pelo esclarecimento. também, a diferença do k++ e ++k eu percebo. o que eu estava a pensar era, por exemplo se k = 2 e eu usasse essa linha, para "*modelo[e][k++]" k seria 2 e para "dic[k]" k seria já 3. a minha dúvida é se isso acontece a resposta a essa pergunta é : depende do operador. isto porque estás a assumir que o operando esquerdo é avaliado primeiro que o direito. mas na realidade, depende do operador da expressão. no teu caso, como é o operador != como é avaliado da esquerda para a direita, então isso acontece, mas não se pode dizer que seja igual para todos os casos. para mais informação, vê na secção de precedência, coluna de associatividade no seguinte link https://en.wikipedia.org/wiki/Operators_in_C_and_C%2B%2B#Operator_precedence Edited January 27, 2016 at 09:38 PM by HappyHippyHippo 1 Report IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now