Índice:
1. Introdução e armazenamento de variáveis
2. Operadores aritméticos, operadores de atribuição, operadores unários
3.Introdução ao scanf e printf
1. Introdução e armazenamento de variáveis
1.1.Criação de variáveis
Agora você entende o que são tipos. Tipos são usados para criar variáveis.
Quais são as variáveis? Na linguagem C, as quantidades que não mudam com frequência são chamadas de constantes, e as quantidades que mudam com frequência são chamadas de variáveis.
Como as variáveis são criadas? Aqui está um exemplo:
data_type name;
//数据类型 变量名;
int idade; // variável inteira
char ch; // variável de caractere
doubleweight; // Variável de ponto flutuante
Quando uma variável é criada, ela precisa receber um valor inicial. Este processo é chamado de inicialização. do seguinte modo:
// 初始化
int age = 18;
char ch = 'D';
double weight = 70.5;
unsigned int height 100;
1.2. Classificação das variáveis
Dividido em: variáveis globais, variáveis locais
Variáveis globais: variáveis definidas fora das chaves são variáveis globais. Variáveis globais são usadas em um escopo mais amplo,
Se você quiser utilizá-lo em todo o projeto, existe uma maneira de utilizá-lo.
Variáveis locais: Variáveis definidas entre chaves são variáveis locais.
O escopo de uso das variáveis locais é relativamente limitado e só pode ser utilizado dentro do escopo local onde estão localizadas.
Demonstração de código:
#include <stdio.h>
int global = 2023; // 全局变量
int main()
{
int locol = 2018; // 局部变量
printf("%d\n", locol);
printf("%d\n", global);
return 0;
}
1.2.1. Preste atenção na nomenclatura das variáveis
Se uma variável global for definida como n, e uma variável chamada n também for definida na variável local, o valor de n da variável local será usado primeiro no processo. Isso precisa ser observado. O código a seguir demonstra:
#include <stdio.h>
int n = 1;
int main()
{
int n = 2;
printf("%d\n", n); // 这里打印出来的值应是2,所以变量名命名的时候需要注意。
return 0;
}
1.3. Onde as variáveis globais e as variáveis locais são armazenadas na memória?
Ao aprender a linguagem C/C++, nos concentraremos em três áreas: área de pilha, área de heap e área estática;
1. As variáveis locais são colocadas na área da pilha da memória;
2. As variáveis globais são colocadas na área estática da memória;
3. A área heap é usada para gerenciar memória dinamicamente
Como mostrado abaixo:
2. Operadores aritméticos, operadores de atribuição, operadores unários
Operadores aritméticos (operadores): +, -, *, /,%
Operadores de atribuição: =, +=, -=, *=, /=, %=, >>=, <<=, &=, |=, ^=
Operadores unários: ++, --, +, -
2.1. O código do operador aritmético é demonstrado a seguir:
// 算术操作符
// +、-、*、/、%
int main()
{
int a = 1;
int b = 2;
int c = 3;
int d = 4;
int e = 6;
float f = 7.1;
printf("%d\n", a + b);
printf("%d\n", b - a);
printf("%d\n", b * c);
printf("%d\n",e / d); // 于C语⾔⾥⾯的整数除法是整除,只会返回整数部分,丢弃⼩数部分。
printf("%f\n", e / f); // 浮点数的除,返回就不会丢弃小数部分。
printf("%d\n", e % d); // 运算符 %,即返回两个整数相除的余值。这个运算符只能⽤于整数,不能⽤于浮点数。
// 负数取模的情况:
// 由一下得出 第⼀个运算数的正负号决定了结果的正负号
printf("%d\n",11 % 5); // 1
printf("%d\n", -11 % -5); // -1
printf("%d\n", -11 % 5); // -1
return 0;
}
resultado da operação:
2.2.Operador de atribuição
Dar um valor inicial a uma variável quando ela é criada é chamado de inicialização, e dar outro valor depois que a variável é criada é chamado de atribuição.
int a = 0; // 初始化
a = 200; // 赋值
O operador de atribuição [=] é um operador que pode atribuir um valor a uma variável a qualquer momento.
2.2.1 Trabalho contínuo
do seguinte modo:
int a = 3;
int b = 4;
int c = 5;
c = b = a + 3; // 虽然C语言支持这样写,但是不方便阅读代码,建议拆开进行写
int a = 3;
int b = 4;
int c = 5;
b = a + 3;
c = b;
2.2.2. Operador de atribuição composto
Ao escrever código, muitas vezes podemos realizar operações de incremento e decremento em um número, conforme mostrado no código a seguir:
int a = 10;
a = a + 3;
a = a - 2;
A linguagem C fornece uma maneira mais conveniente de escrever esse código, como segue:
int a = 10;
a += 3;
a -= 2; // 还有更多的复合赋值符,上面我也列出来了,都可以去尝试一下。
2.3. Operador unário
++, --, + (positivo), - (negativo) são operadores unários.
2.3.1.++ e -
++ é um operador auto-crescente, dividido em prefixo ++ e postfix ++. -- é um operador auto-decrescente, também dividido em prefixo -- e pós-fixo --.
2.3.2. Prefixo++
int a = 10;
int b = ++a; // ++的操作数是a,是放在a前面的,就是前置 ++
printf("%d\n", b);
// 计算⼝诀:先+1,后使⽤;
// a原来是10,先+1,后a变成了11,再使⽤就是赋值给b,b得到的也是11,所以计算技术后,a和b都是11.
int a = 10;
a = a+1;
b = a;
printf("a=%d b=%d\n",a , b);
2.3.3.Post++
int a = 10;
int b = a++;//++的操作数是a,是放在a的后⾯的,就是后置++
printf("a=%d b=%d\n",a , b);
// 计算⼝诀:先使⽤,后+1
// a原来是10,先使⽤,就是先赋值给b,b得到了10,然后再+1,然后a变成了11,所以直接结束后a是
11,b是10
int a = 10;
int b = a;
a = a+1;
printf("a=%d b=%d\n",a , b);
2.3.4. Prefixo--
// 如果你懂了前面我写的前置++,那前置--是同理的,只是把加1,换成了减1;
// 计算⼝诀:先-1,后使⽤
int a = 10;
int b = --a; // --的操作数是a,是放在a的前⾯的,就是前置--
printf("a=%d b=%d\n",a , b);//输出的结果是:9 9
2.3.5.Postagem--
// 同理后置--类似于后置++,只是把加一换成了减一
// 计算⼝诀:先使⽤,后-1
int a = 10;
int b = a--; // --的操作数是a,是放在a的后⾯的,就是后置--
printf("a=%d b=%d\n",a , b);//输出的结果是:9 10
2.3.6.+ e -
Aqui + é um sinal positivo e - é um sinal negativo, ambos são operadores unários.
O operador + não tem efeito sobre valores positivos e negativos e é um operador que pode ser completamente omitido.
Mas nenhum erro será relatado se eu escrever.
int a = +10;é equivalente a int a = 10;
Operador - é usado para alterar o sinal de um valor. Se você adicionar - na frente de um número negativo, obterá um número positivo. Se você adicionar - na frente de um número positivo, obterá um número negativo.
int a = 10;
int b = -a;
int c = -10;
printf("b=%d c=%d\n", b, c); // 这⾥的b和c都是-10
int a = -10;
int b = -a;
printf("b=%d\n", b); // 这⾥的b是10
3.Introdução ao scanf e printf
3.1.imprimir
Uso básico: A função de printf() é enviar texto de parâmetro para a tela. O f em seu nome significa formato, o que significa que o formato do texto de saída pode ser personalizado.
#include <stdio.h>
int main(void)
{
printf("Hello World"); // 会在屏幕输出 Hello World
return 0;
}
3.1.Como quebrar a linha após a saída do printf?
printf() não adicionará automaticamente um caractere de nova linha no final da linha. Após a execução,
O cursor permanecerá no final da saída e não será quebrado automaticamente.
Para mover o cursor para o início da próxima linha, você pode adicionar um caractere de nova linha \n no final do texto de saída.
#include <stdio.h>
int main(void)
{
printf("Hello World\n");
return 0;
}
Se houver uma quebra de linha dentro do texto, isso também é feito inserindo um caractere de quebra de linha, conforme mostrado no código a seguir:
#include <stdio.h>
int main(void)
{
printf("Hello\nWorld\n");
printf("Hello\n");
printf("World\n");
return 0;
}
printf() é definido no arquivo de cabeçalho stdio.h da biblioteca padrão. Antes de usar esta função, este arquivo de cabeçalho deve ser introduzido no cabeçalho do arquivo de código-fonte.
3.2.scanf
Quando temos uma variável, podemos usar a função scanf para inserir um valor na variável. Se precisarmos exibir o valor da variável na tela, podemos usar a função printf. Aqui está um exemplo:
Uso básico: A função scanf() é usada para ler a entrada do teclado do usuário.
Quando o programa atingir esta instrução, ele irá parar e aguardar a entrada do usuário no teclado.
Depois que o usuário inserir os dados e pressionar a tecla Enter, scanf() processará a entrada do usuário e a armazenará em uma variável.
Seu protótipo é definido no cabeçalho stdio.h.
A sintaxe de scanf() é semelhante a printf().
scanf(%d, &i);
O primeiro parâmetro %d de scanf() indica que a entrada do usuário deve ser um número inteiro. %d é um espaço reservado,% é o sinalizador de espaço reservado e d representa um número inteiro. O segundo parâmetro & indica que o número inteiro digitado pelo usuário no teclado está armazenado na variável i.
Nota: O operador & deve ser adicionado na frente da variável (exceto variáveis ponteiro), pois scanf() não passa um valor, mas sim um endereço, ou seja, o endereço da variável i aponta para o valor digitado pelo usuário. Se a variável aqui for uma variável de ponteiro (como uma variável de string), não será necessário adicionar o operador &.
3.2.1.Valor de retorno de scanf
O valor de retorno de scanf() é um número inteiro, indicando o número de variáveis lidas com sucesso.
Se nenhum item foi lido ou a correspondência falhou, 0 será retornado. Se ocorrer um erro de leitura ou o final do arquivo for atingido antes que qualquer dado seja lido com sucesso, a constante EOF será retornada.
Pressione ctrl+z três vezes no ambiente VS para finalizar a entrada. Podemos ver que r é 2, o que significa que 2 valores foram lidos corretamente. Se você não inserir um único número, basta pressionar ctrl+z três vezes e a saída r será -1, que é EOF.
3.2.2. Espaço reservado
Os espaços reservados comumente usados para scanf() são os seguintes, que são consistentes com os espaços reservados para printf():
-
%c: caractere
-
%d: inteiro
-
%f: número de ponto flutuante do tipo float
-
%lf: número de ponto flutuante de tipo duplo
-
%Lf: número de ponto flutuante longo tipo duplo
-
%s: sequência
-
%[]: Especifique um conjunto de caracteres correspondentes entre colchetes (como %[0-9]).Ao encontrar caracteres que não estão no conjunto, a correspondência será interrompida
.