O segundo dia de aprendizagem da linguagem C: tipos de dados e variáveis da linguagem C (Parte 2)

Í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
    .

        Nota: Entre todos os espaços reservados acima, exceto %c, os caracteres de espaço em branco iniciais serão automaticamente ignorados. %c não ignora caracteres de espaço em branco e sempre retorna o primeiro caractere atual, independentemente de ser um espaço. 

Acho que você gosta

Origin blog.csdn.net/m0_58724783/article/details/131946688
Recomendado
Clasificación