Conociendo el lenguaje C por primera vez: el primer capítulo de una introducción rápida al lenguaje C

Hola a todos, aquí está el diario de aprendizaje del programador.

inserte la descripción de la imagen aquí


prefacio

Hola a todos, bienvenidos a la primera parte de "Lenguaje C Elemental", en este artículo les daremos una breve introducción¿Qué es el lenguaje C, el primer programa en lenguaje C, tipos de datos, variables constantes, cadenas, caracteres de escape, comentarios, que todos entiendan el lenguaje C desde cero?

1. ¿Qué es el lenguaje C?

El lenguaje C es un lenguaje de programación de computadora de propósito general, ampliamente utilizado en el desarrollo de bajo nivel. El objetivo de diseño del lenguaje C es proporcionar una manera fácil de compilar, manejar memoria de bajo nivel, generar una pequeña cantidad de código de máquina yNo requiere ningún soporte de entorno operativo para ejecutarselenguaje de programación.
Aunque el lenguaje C proporciona muchas funciones de procesamiento de bajo nivel, todavía mantiene buenas características multiplataforma, escritas en una especificación estándar.Los programas C se pueden compilar en muchas plataformas informáticas, e incluso incluir algunos procesadores integrados (microcontroladores o MCU) y plataformas operativas como las supercomputadoras.
En la década de 1980, para evitar diferencias en la sintaxis del lenguaje C utilizada por varios desarrolladores, elLa Oficina Nacional Estadounidense de Estándares ha desarrollado un conjunto completo de gramáticas estándar nacionales estadounidenses para el lenguaje C, llamado ANSI C, como el estándar original para el lenguaje C.
El lenguaje C es un lenguaje de programación de computadoras orientado a procesos, que es diferente a los lenguajes de programación orientados a objetos como C++, Java, etc. Sus compiladores incluyen principalmente Clang, GCC, WIN-TC, SUBLIME, MSVC, Turbo C, etc.
simplemente pon:El lenguaje C es el lenguaje con el que los humanos nos comunicamos con las computadoras. Puede convertir el código que escribimos en instrucciones binarias que la computadora puede reconocer., el sistema operativo usa estas instrucciones binarias para permitir que la computadora haga todo tipo de cosas por nosotros, los humanos.

2. El primer programa en lenguaje C

#include<stdio.h>
int main()
{
    
    
	printf("hello world\n");
	return 0;
}

Análisis:
principal: función principal, la entrada del programa, un programa tiene y solo puede tener una función principal.
printf: función de biblioteca, utilizada para imprimir la salida de datos en la pantalla.
include<stdio.h>: include significa incluir, stdio.h es el archivo de encabezado de la función de biblioteca printf, y el archivo de encabezado correspondiente debe incluirse al comienzo del programa cuando se usa printf.
retorno: el valor de retorno de la función principal, donde se devuelve 1 si el programa finaliza normalmente.
inserte la descripción de la imagen aquí

3. Tipo de datos

char //Tipo de datos de carácter
corto //Entero corto
int //
Entero largo //Entero largo
largo largo //Entero más largo
flotante //Número de punto flotante de precisión simple
double // Número de punto flotante de precisión doble
Nota: Hay no hay tal cosa en lenguaje C Tipo de cadena

Tamaño de cada tipo de datos:

#include <stdio.h>
int main()
{
    
    
	printf("%d\n", sizeof(char));      //1
	printf("%d\n", sizeof(short));     //2
	printf("%d\n", sizeof(int));       //4
	printf("%d\n", sizeof(long));      //4
	printf("%d\n", sizeof(long long)); //8
	printf("%d\n", sizeof(float));     //4
	printf("%d\n", sizeof(double));    //8
	printf("%d\n", sizeof(long double)); //8
	return 0;
}
}

inserte la descripción de la imagen aquí
Por qué hay tantos tipos de datos: para expresar los diversos valores en la vida de manera más abundante.
Uso de tipos de datos:

char ch = 'w';
int weight = 120;
int salary = 20000;

Los estudiantes básicos pueden leer mi otro artículo, que tiene una introducción completa a los tipos de datos: palabra clave en lenguaje C explicación detallada (1) auto, registrar palabras clave

4. Constantes y Variables

Algunos valores en la vida son constantes (por ejemplo: pi, género, número de identificación, tipo de sangre, etc.).
Algunos valores son variables (por ejemplo: edad, peso, salario).
El valor constante está representado por el concepto de constante en lenguaje C, y el valor variable está representado por variable en lenguaje C.

constante

Las constantes en lenguaje C se dividen en las siguientes categorías:

  • constante literal
  • variable constante modificada por const
  • Constantes de identificador definidas por #define
  • enumeración constante
#include <stdio.h>
//举例
enum Sex
{
    
    
 MALE,
 FEMALE,
 SECRET
};
//括号中的MALE,FEMALE,SECRET是枚举常量
int main()
{
    
    
    //字面常量演示
    3.14;//字面常量
    1000;//字面常量
    
    //const 修饰的常变量
    const float pai = 3.14f;   //这里的pai是const修饰的常变量
    pai = 5.14;//是不能直接修改的!
    
    //#define的标识符常量 演示
 #define MAX 100
    printf("max = %d\n", MAX);
    
    //枚举常量演示
    printf("%d\n", MALE);
    printf("%d\n", FEMALE);
    printf("%d\n", SECRET);
    return 0;
 }

Darse cuenta:

  • De forma predeterminada, las constantes de enumeración comienzan en 0 y se incrementan en 1.
  • El pai en el ejemplo anterior se denomina variable constante modificada por const. La variable constante modificada por const en lenguaje C solo restringe que la variable pai se cambie directamente en el nivel de sintaxis, pero pai es esencialmente una variable, por lo que se llama un la variable constante.

Para el uso detallado de const, los estudiantes con conocimientos básicos pueden leer mi otro artículo: Explicación detallada de las palabras clave del lenguaje C (4) Lo llevará a comprender completamente la palabra clave const

variable

Cómo definir variables

int age = 150;
float weight = 45.5f;
char ch = 'w';

Clasificación de variables

Las variables se dividen en variables globales y variables locales.

#include<stdio.h>
int g_val = 10;   //全局变量
int main()
{
    
    
	int a = 20;   //局部变量
	printf("%d\n", g_val);
	printf("%d\n", a);
	return 0;
}

Nota: cuando dos variables locales tienen los mismos nombres de variables, el compilador informará un error; cuando las variables globales y las variables locales tienen los mismos nombres de variables, la variable local tiene prioridad.
inserte la descripción de la imagen aquí

uso de variables

#include <stdio.h>
int main()
{
    
    
    int num1 = 0;
    int num2 = 0;
    int sum = 0;
    printf("输入两个操作数:>");
    scanf("%d %d", &num1, &num2);
    sum = num1 + num2;
    printf("sum = %d\n", sum);
    return 0;
}

Análisis:
scanf: función de biblioteca, entrada formateada, utilizada para aceptar datos ingresados ​​desde el teclado. .
nums1, nums2, sum: variables locales utilizadas para almacenar datos.

Alcance y tiempo de vida de las variables

alcance
El alcance es un concepto de programación, en general, los nombres utilizados en un código de programa no siempre son válidos/disponibles
. El alcance del código que califica la disponibilidad del nombre es el alcance del nombre.

  • El ámbito de una variable local es el ámbito local en el que reside la variable.
  • El alcance de las variables globales es todo el proyecto.

ciclo vital
El ciclo de vida de una variable se refiere al período de tiempo entre la creación de la variable y la destrucción de la variable.

  • El ciclo de vida de una variable local es: comienza el ciclo de vida de entrar en el ámbito y finaliza el ciclo de vida fuera del ámbito.
  • El ciclo de vida de las variables globales es: el ciclo de vida de todo el programa.

Los estudiantes con conocimientos básicos pueden leer mi otro artículo, que tiene una introducción completa al alcance y el ciclo de vida de las variables locales, las variables globales y las variables: Explicación detallada de las palabras clave del lenguaje C (1) auto, registrar palabras clave

5. Cadena + carácter de escape + comentario

cuerda

"hello world"

Esta cadena de caracteres encerrados entre comillas dobles se llama String Literal, o simplemente una
cadena.

Puntos a tener en cuenta con cadenas:

  • El final de la cadena está marcado por un carácter de escape \0.
  • \0 es el marcador final al imprimir la cadena y calcular la longitud de la cadena.
  • \0 no cuenta como contenido de cadena.
  • El compilador agregará automáticamente \0 al final de la cadena.
  • Comprenda correctamente que \0 es el signo del final de la cadena:

Cómo entender que \0 es el final de la cadena:
Pregunta 1: ¿Cuál es el resultado de impresión del siguiente código?

#include <stdio.h>
int main()
{
    
    
    char arr1[] = "hello";
    char arr2[] = {
    
     'h','e','l','l','o' };
    char arr3[] = {
    
     'h','e','l','l','o', '\0' };
    printf("%s\n", arr1);
    printf("%s\n", arr2);
    printf("%s\n", arr3);
    return 0;
}

inserte la descripción de la imagen aquí

Análisis:
arr1 es una cadena, que se almacena en la memoria: 'h' 'e' 'l' 'l' '0' '\0' seis caracteres, lo mismo que arr3, y '\0' es un final de carácter de cadena, por lo que al imprimir arr1 y arr3 con %s, es hola, y no hay '\0' al final de arr2, por lo que cuando imprime arr1 y arr3Al imprimir con %s, el compilador no se detendrá en la posición del carácter 'o', sino que continuará imprimiendo hacia atrás hasta que encuentre '\0', pero no sabemos qué datos se almacenan en el espacio de memoria detrás de arr2, por lo que no podemos determinar la cantidad de caracteres impresos por arr2 y qué tipo de caracteres son.

Pregunta 2: ¿Cuál es el resultado de impresión del siguiente código?

#include <stdio.h>
#include<string.h>
//strlen:求字符串长度的库函数,返回'\0'以前的字符的个数,其头文件是 string.h
int main()
{
    
    
	char arr1[] = "hello";
	char arr2[] = {
    
     'h','e','l','l','o' };
	char arr3[] = {
    
     'h','e','l','l','o', '\0' };
	printf("%d\n", strlen(arr1));
	printf("%d\n", strlen(arr2));
	printf("%d\n", strlen(arr3));
	return 0;
}

inserte la descripción de la imagen aquí

Análisis:
Suplemento: strlen: una función de biblioteca que encuentra la longitud de una cadena, devuelve el número de caracteres antes de '\0', su archivo de encabezado es cadena.h
Aquí es lo mismo que arriba, strlen encuentra la longitud de una cadena, y se encuentra con la parada '\0', por lo que arr1 y arr3 son ambos 5, y no hay '\o' al final de arr2, y no sabemos cuáles son los datos después de arr2, por lo que arr2 imprime un valor aleatorio.

Personaje de escape

Tabla de caracteres de escape del lenguaje C:

inserte la descripción de la imagen aquí

Uso de caracteres de escape comunes

#include<stdio.h>
int main()
{
    
    
	printf("hello\n");  // \n:换行,将光标移动到下一行

	printf("hello\t");  // \t:水平制表符,一次跳过四个或者八个字符
	printf("\n");

	printf("\"");       // \:将 " 的意思改变,让我们单独可以打印出 "
	printf("\n");

	printf("\'");       // \:同上,将 ’ 的意思改变,让我们单独可以打印出 ‘
	printf("\n");

	printf("%c\n", '\130');   // \:将八进制的130转化为十进制的88,再打印88对应的ASCII表上的字符 'X'

	printf("%c\n", '\x61');   // \:将十六进制的60转化为十进制的97,再打印96对应的ASCII表上的字符 'a'

	return 0;
}

inserte la descripción de la imagen aquí

Tabla de codificación ASCII:

inserte la descripción de la imagen aquí

Comprensión de cadenas y caracteres de escape:
Pregunta de prueba escrita: ¿Cuál es el resultado del siguiente código?

#include <stdio.h>
int main()
{
    
    
    printf("%d\n", strlen("abcdef"));
    printf("%d\n", strlen("c:\test\628\test.c"));
    return 0;
}

inserte la descripción de la imagen aquí

Análisis:
No hablemos del primero, solo miremos el segundo: c:\test\628\test.c, donde \t \62 \t se escapa con \ y se considera un carácter, por lo que hay 14 caracteres en total, puede haber muchos estudiantes que considerarán \628 como un carácter para obtener la respuesta 13, pero tenga en cuenta que,El número máximo de números octales es 7, y 8 no pertenece a la categoría de octal, por lo que \62 es un carácter y 8 es otro carácter.

notas

Hay dos estilos
de comentarios: Comentarios de estilo C: / xxxxxx / , que es conveniente para los comentarios, pero no se puede anidar.
Comentario de estilo C++: //xxxxxxxx, puede comentar una línea o varias líneas, también puede usar ctrl+k+c y ctrl+k+u para comentar y descomentar rápidamente, es más popular en la actualidad.

El papel de los comentarios: puede explicar el programa escrito para mejorar la legibilidad. También puede comentar directamente sobre el código que desea eliminar o inútil o incorrecto.

#include <stdio.h>
int Add(int x, int y)
{
    
    
    return x+y;
}
/*C语言风格注释   //注释掉不想要的代码段
int Sub(int x, int y)
{
    return x-y;
}
*/
int main()
{
    
    
    //C++注释风格   
    //int a = 10;   //注释掉不想要的代码行
    //调用Add函数,完成加法   //对代码进行说明解释
    printf("%d\n", Add(1, 2));
    return 0;
}

Supongo que te gusta

Origin blog.csdn.net/m0_62391199/article/details/123936982
Recomendado
Clasificación