operador
operadores aritméticos
+ - * / %
+: use para adição
-: usado para subtração,
*: usado para multiplicação
/: Usado para divisão. Quando ambas as extremidades do sinal de divisão são inteiros, a divisão inteira é executada. Se houver apenas um número de ponto flutuante em ambas as extremidades, a divisão de ponto flutuante é executada.
%: usado para encontrar o resto, nota: ambos os lados de % devem ser inteiros, como 4%2, outras formas de caracteres como: 4.0%2.0 ou 4.0%2 estão erradas.
/ e % exemplo
Quando houver um número de ponto flutuante no lado %, um erro será relatado neste momento
operador de deslocamento
>> <<
Seta apontando para a esquerda significa mover para a esquerda, seta apontando para a direita significa mover para a direita
Operadores de deslocamento podem deslocar números em uma base binária
operador bit a bit
& : operação AND bit a bit (em binário)
^ : operação XOR bit a bit (sob binário)
| : operação OR bit a bit (em binário)
operador de atribuição
=: a=5; b=a; neste momento a é igual a 5, b também é igual a 5, e o caractere à esquerda do sinal de igual é igual ao caractere à direita do sinal de igual
+=: Adicionar atribuição, coluna: a=5; a=a+5; simplificando o bit a+=5 definindo a=a+5
-=: Atribuição de subtração, coluna: a=5; a=a-5; a=a+5 pode ser simplificado para a-=5
*=: Multiplicação e atribuição, coluna: a=5; a=a*5; a*=5 pode ser simplificado por a=a*5
/=: atribuição de divisão, coluna: a=5; a=a/5; simplificando o bit a=a*5 a/=5
&=: atribuição AND bit a bit
^=: exclusivo ou atribuição bit a bit
|=: bit a bit ou atribuição
>>=: Atribuição após deslocamento à esquerda
<<=: Atribuição após deslocamento à direita
operador unário
operador unário | significado |
! | operação lógica inversa |
+ | valor positivo |
- | valor negativo |
& | operação de busca de endereço |
tamanho de | Calcular o comprimento do tipo do operando, em bytes |
~ | negação bit a bit |
-- | Dividido em pré-- e pós-- |
++ | Quantil Pré e Pós-++ |
* | Operador de acesso indireto (operador de desreferência) |
(tipo) | coerção |
#include<stdio.h>
int main()
{
int a = 10;
int b = 2;
int* c = &a;
printf("%d\n", !a);//逻辑反操作
printf("%d\n", a+b);//正值
printf("%d\n", a-b);//负值
printf("%d\n", sizeof(int)); //计算int型所占字节大小
printf("%d\n", --a); //先--,再使用a=10;--a,a为9,打印9
printf("%d\n", a--); //先使用,再--,a=9,先打印9,再--,加完后a=8
printf("%d\n", ++a);//先++,再使用a=9;++a,a为9,打印9
printf("%d\n", a++);//先使用,再++,a=9,先打印9,再++,加完后a=10
printf("%d\n", *c);//对c进行解引用
printf("%f\n", (float)a); //将a强制转化为float型
return 0;
}
operador relacional
operador relacional | significado |
== | determine se é igual |
!= | O julgamento é desigual |
>= | Determine se é maior ou igual a |
<= | Determine se é menor ou igual a |
> | determinar se é maior do que |
< | determinar se é menor do que |
operador lógico
operador lógico | significado |
&& | lógico e |
|| | lógico ou |
operador condicional
exp1 ? exp2 : exp3, se exp1 for verdadeiro então execute exp2, caso contrário execute exp3
#include<stdio.h>
int main()
{
int a = 10;
int b = 2;
a == b ? printf("YES") : printf("NO");
return 0;
}
expressão de vírgula
exp1, exp2, exp3, …expN expressões de vírgula esperam a instrução após a última vírgula como a instrução de saída
#include<stdio.h>
int main()
{
int a = 10;
int b = 2;
printf("%d", (a, b));
return 0;
}
Referências de subscrito, chamadas de função e membros de estrutura
[] () . -> (Isso será atualizado posteriormente)
palavras-chave comuns
auto break case char const continue default do double else enum extern float for goto if int long register return short assinado sizeof static struct switch typedef union unsigned void volátil while
definir não é uma palavra-chave
Nome da variável:
1. Tem que ser significativo
2. Deve ser composto por números, letras e sublinhados _
3. Deve começar com uma letra ou sublinhado
4. Palavras-chave não podem ser usadas como nomes de variáveis