Introducción a los operadores aritméticos, de asignación y unarios

operador aritmético

Los operadores aritméticos incluyen los siguientes símbolos:
1: + (signo más)
2: - (signo menos)
3: * (signo de multiplicación)
4: / (signo de división)
5: % (signo de resto
) La operación del lenguaje C juega un papel importante, vamos a presentarlo a continuación

1.1: + y -

Las funciones de + y - son las mismas que hemos aprendido en matemáticas, se utilizan para completar sumas y restas, como el siguiente código:

#include<stdio.h>
int main()
{
    
    
    int a=3+2,b=5-6;
    printf("%d\n",a);
    printf("%d\n",b);
    return 0;
}

Los resultados finales de impresión de a y b aquí son 5 y -1 respectivamente.

1.2:*

*Tiene el mismo significado que × en matemáticas, y el algoritmo también es el mismo.

#include<stdio.h>
int main()
{
    
    
	int a = 3 + 2, b = 5 - 6;
	int c = a * b;
	printf("%d\n", c);
	return 0;
}

Hacemos una simple modificación al código anterior, a través del cálculo, obtenemos que el valor de c sea -5, y el resultado final de la ejecución también es -5.

1.3:/

/ es dividir la fórmula.

#include<stdio.h>
int main()
{
    
    
	float a = 6 / 4;
	int b = 6 / 4;
	printf("%f\n", a); //输出 1.000000
	printf("%d\n", b); //输出 1
	return 0;
}

¿Por qué la salida no es 1.5?
De hecho, hay una regla: si los dos extremos del signo de división son números enteros, se realiza la división de enteros y el resultado también es un número entero.
Aunque el tipo de la variable x es float (número de punto flotante), el resultado de 6/4 es 1,0 y no 1,5. La razón es que la división de enteros en el lenguaje C es una división de enteros, y solo se devuelve la parte entera y se descarta la parte fraccionaria.

Si queremos obtener los pocos dígitos después de la parte fraccionaria, podemos hacer que al menos uno de los operandos sea un número de coma flotante.

#include <stdio.h>
int main()
{
    
    
 float x = 6.0 / 4; // 或者写成 6 / 4.0
 printf("%f\n", x); // 输出 1.500000
 return 0;
}

6.0 / 4 significa realizar una división de punto flotante, y el resultado es 1.5
Pensemos en otra situación

include <stdio.h>
int main()
{
    
    
 int score = 5;
 score = (score / 20) * 100;
 return 0;
}

En el código anterior, puede pensar que después del cálculo, la puntuación será igual a 25, pero en realidad la puntuación es igual a 0. Esto se debe a que
la puntuación / 20 es divisible y dará como resultado un valor entero de 0, por lo que multiplicar por 100 también dará como resultado 0.
Para obtener el resultado esperado, puede cambiar el divisor 20 a 20,0, de modo que la división de enteros se convierta en una división de números de punto flotante.

include <stdio.h>
int main()
{
    
    
 int score = 5;
 score = (score / 20.0) * 100;
 return 0;
}

1,4:%

% es una operación de módulo en matemáticas, pero en lenguaje C devuelve el resto de la división de dos enteros. Este operador solo se puede usar en números enteros, no en números de punto flotante.

#include <stdio.h>
int main()
{
    
    
 int x = 6 % 4; // 2
 return 0;
}

Veamos otra situación:

#include <stdio.h>
int main()
{
    
    
 printf("%d\n", 11 % -5); //结果为 1
 printf("%d\n",-11 % -5); //结果为-1
 printf("%d\n",-11 % 5);  //结果为-1
 return 0;
}

Este resultado es diferente del resultado de nuestras operaciones matemáticas habituales.Hay
una regla en el módulo de números negativos: el signo del resultado está determinado por el signo del primer operando.

operador de asignación

Dar un valor inicial cuando se crea una variable se llama inicialización, y dar un valor después de que se crea la variable se llama asignación

int a = 100;//初始化
a = 200;//赋值,这⾥使⽤的就是赋值操作符

El operador de asignación = es un operador que puede asignar un valor a una variable en cualquier momento.

2.1: Asignación continua

La asignación puede ser continua, por ejemplo:

int a = 3;
int b = 5;
int c = 0;
c = b = a+3;//连续赋值,从右向左依次赋值的。

Este código también es equivalente a

int a = 3;
int b = 5;
int c = 0;
b = a+3;
c = b;

Pero personalmente recomiendo el segundo código, porque es más fácil de entender y observar.

2.2: Operador de asignación compuesto

Al escribir código, a menudo podemos realizar operaciones de autoincremento y autodecremento en un número, como se muestra en el siguiente código:

int a = 10;
a = a+3;
a = a-2;

Este código también es equivalente a

int a = 10;
a += 3;
a -= 2;

Por lo tanto, podemos saber a partir de estos dos códigos que
a=a+3 se puede escribir como a+=3 El
lenguaje C proporciona símbolos de asignación compuestos, lo cual es conveniente para escribir códigos.Estos símbolos de asignación son

+=  -=
*=  /=  %=
>>=  <<=
&=  |=  ^=

operador unario

Los operadores descritos anteriormente son todos operadores binarios. También existen algunos operadores en lenguaje C que tienen un solo operando, los cuales se denominan operadores unarios.
Eso es ++, –, +, -.

3.1++ y –

++ es un operador de autoincremento, que también se divide en pre-++ y post-++, – es un operador de autodecremento, y también se divide en pre-– y post-–

3.1.1: Prefijo ++ y Prefijo –

Frente ++ (+1 primero, luego usar):

int a = 10;
int b = ++a;//++的操作数是a,是放在a的前⾯的,就是前置++
printf("a=%d b=%d\n",a , b);
1

Veamos otro ejemplo:

int a = 10;
a = a+1;
b = a;
printf("a=%d b=%d\n",a , b);

El proceso es: a es originalmente 10, primero +1, luego a se convierte en 11, y luego se asigna a b, y b obtiene 11

Anteponer – (-1 primero, luego usar):

int a = 10;
int b = --a;//--的操作数是a,是放在a的前⾯的,就是前置--
printf("a=%d b=%d\n",a , b);//输出的结果是:9 9

3.1.2: publicación ++ y publicación –

Atrás ++ (usar primero, luego +1):

int a = 10;
int b = a++;//++的操作数是a,是放在a的后⾯的,就是后置++
printf("a=%d b=%d\n",a , b);

Veamos otro ejemplo:

int a = 10;
int b = a;
a = a+1;
printf("a=%d b=%d\n",a , b);

El proceso es: a es originalmente 10, y se usa primero, es decir, primero se asigna a b, b obtiene 10, luego +1 y luego a se convierte en 11.

sufijo – (usar primero, luego -1):

int a = 10;
int b = a--;//--的操作数是a,是放在a的后⾯的,就是后置--
printf("a=%d b=%d\n",a , b);//输出的结果是:9 1

3.2: + y -

Aquí + es un signo positivo, - es un signo negativo, ambos son operadores unarios.
El operador + no tiene efecto sobre los valores positivos y negativos, es un operador que se puede omitir por completo, pero no informará de un error si se escribe.

int a = +10; 等价于 int a = 10;

Operador: se usa para cambiar el signo de un valor, agregar - frente a un número negativo dará como resultado un número positivo, agregar - frente a un número positivo dará como resultado un 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

Supongo que te gusta

Origin blog.csdn.net/2301_79178723/article/details/131914544
Recomendado
Clasificación