Aprendizaje de lengua C cuarto día (básico)

sizeof () Calcula la longitud del tipo
int a = 10;
int arr [] = {1, 2, 3, 4, 5, 6}; [] es el número de esta matriz y el número puede ser desde atrás {} saber que
es [número de] que no se puede escribir

printf ("% d \ n", sizeof (a)); Este es el tamaño de a es 4 bytes porque es un entero
printf ("% d \ n", sizeof a); igual que el tamaño de () anterior Los caracteres dentro no se pueden escribir ()
printf ("% d \ n", sizeof (int)); lo que se calcula es que el tamaño del entero es de 4 bytes. Aquí () se debe escribir
printf ("% d '\ n ", sizeof (arr)); Lo que se calcula es que el tamaño completo de esta matriz es 24 porque un número en ella tiene 4 bytes y 6 números son 24 bytes.
printf ("% d \ n ", sizeof ( arr) / sizeof (arr [0]) salida 6
Aprendizaje de lengua C cuarto día (básico)

~ Invertir por bit (binario)
int a = 0 4 bytes 32 bits 000000000000000000000000000000000000000000000000000
El primer número del binario se llama bit de signo

int b = ~ ab entero con signo, llamado por el bit inversión del signo bit se llama el primero + 1 es 0 o 1-1111111111111111111111111111111111111111
código original código de complemento inverso
cuando el negativo se almacena en la memoria, se almacena en binario complementa el código original se imprime
código binario binario en el interior del anverso es 1 que es negativo luego se almacena cuando es complemento con
la relación entre el código anti-código y anti-complemento es +1 El complemento y el código invertido y el código original se invierten pero el número frontal permanece sin cambios

Siempre que un número entero almacenado en la memoria esté en complemento binario
entero primario anticomplemento tres yardas uniforme
negativo es
printf ("% d", b ) salidas -1

Aprendizaje de lengua C cuarto día (básico)

++ Pre-agregar más post-agregar más
int a = 10
int b = a ++ Post-agregar más, usar primero, luego agregar
printf ("a =% db =% d \ n", a, b) La salida es 11 10

Si int b = ++ a precede a ++, agréguelo primero y luego use la salida 11 11

int b = a --- salida posterior a la resta 9 10
int b = - una salida anterior a la resta 9 9

(Tipo) Conversión forzada
int a = 3.14 int a = (int) 3.14
return 0 reportará un error, no habrá error, esto (int) significa que la conversión forzada convierte 3.14 a un entero

Aprendizaje de lengua C cuarto día (básico)

El operador relacional <=>
=! = == se
usa para probar la desigualdad para probar la igualdad

Aprendizaje de lengua C cuarto día (básico)

Operador
lógico && AND lógico
int a = 3
int b = 5
int c = a && b a es verdadero b también es cierto entonces c es verdadero entonces la salida C es igual a 1
|| lógica OR

int c = a || ba es verdadero o b es verdadero, c es directamente verdadero y c es 1
Aprendizaje de lengua C cuarto día (básico)

Operador condicional
exp1? Exp2: exp3 Esta es una expresión completa si exp1? Si es verdadero, entonces el resultado de la ejecución de exp2 es el resultado de toda la expresión.
Este también es un operador ternario. Si exp1? Si es falso, entonces el resultado de exp3 ejecutarlo es el resultado de toda la expresión
int a = 10
int b = 20
int max = 0
if (a> b) Lo que sigue a if se vuelve así directamente max = (a> b? A; b )
max = a
más;
max = b
Aprendizaje de lengua C cuarto día (básico)

La expresión de coma
exp1, exp2, exp ,. . . . expN

Llamadas a funciones de referencia de subíndice y miembros de estructura
[] (), ->
int arr [10] = {0}
arr [4] Operador de referencia de subíndice
int add (int x, int y)
int z = 0
z = x + y
return z
int a = 10
int b = 20
int sum = add (a, b) llamada la función add
Aprendizaje de lengua C cuarto día (básico)

Los símbolos definidos por palabras clave comunes no pueden entrar en conflicto con las palabras clave (prescritas)
auto (automático) break case char const continue default (default) do double else enum extern (introducción de símbolos externos) float for goto if int long reguster (registro) return tamaño corto con signo de estructura estática (palabra clave de estructura) cambiar tipodef (definición) unión (unión, unión) sin firmar void volátil while

auto
int a = 1 Hay un auto delante de él, lo que significa que el tipo entero a aparece automáticamente en este {} y luego desaparece automáticamente. Creo que hay auto antes de int, por lo que se omite
break . Se usa a menudo en el
registro de declaración de bucle registro
int a = 1 porque en el futuro Usaré a con frecuencia, así que quiero ponerlo en el registro para convertirlo en una variable de
registro register int a = 1 En este momento, solo se recomienda poner a en el registro para determinar si está en el registro depende del compilador.

int variable definida tiene el signo int int y los símbolos son equivalentes a
solo firmado, generalmente omitimos
si escribimos unsigned int a = 2 ^ 32 -1 incluso si es negativo, pero como es así, escribe unsigned unsigned El número es que se almacena en el código original cuando se almacena

typedef type definition-type redefinition
unsigned int a = 1
se puede escribir como typed si unsigned int u int
u int a = 1 de aquí en adelante, todos los unsigned int se pueden escribir directamente como u int
Aprendizaje de lengua C cuarto día (básico)
static después de la modificación de las variables locales, el ciclo de vida de las variables locales se alarga después de la modificación
después de la modificación variables globales modificadas el alcance de las variables globales se reduce
cambiar el atributo de enlace después de que la función de modificación se modifique desde el exterior al atributo de enlace interno atributo de enlace
void Test ()
{
static int. 1 a = a es una variable local estática
a ++
the printf ("A =% d \ n", a)
int main ()
{
int i = 0
while (i <5)
{
test ()
i ++
}
return 0
}

Si no hay estática, la salida es 2 2 2 2 2 Con estática 2 3 4 5 6
Las variables locales estáticas significan que todavía existen y no se destruirán una vez que estén fuera de alcance.
Aprendizaje de lengua C cuarto día (básico)

En el archivo fuente en el interior para construir un C ++, marcó las variables globales
int a = 10 en otro C ++ dentro como puede ser del mismo archivo fuente
siempre que la pelea extern int a pueda usarlo
en un C ++ dentro, el juego es
estático int a = 10 entonces nuevamente con otro archivo fuente de c ++ que no se puede usar
debido al alcance reducido de variables globales estáticas

Para construir los archivos fuente dentro de un C ++ marcado con una función, agregue en el interior ()
en el mismo archivo fuente, otro C ++ que marcó extern int Add (), luego puede usarlo
y, si luego, compile un archivo fuente C ++ que marcó una función estática en él Add ()
después de él en el mismo archivo fuente que marcó otro int externo de C ++ Add () no se puede usar
porque las propiedades estáticas de la función para cambiar el enlace

define define la constante del identificador
define max 1000
difine puede definir macros-con parámetros
define ADD (x, y) ((x) + (y)) La macro es similar a la función pero es diferente

printf ("% p \ n", & a) La dirección de impresión imprime el hexadecimal
int a = 10
int p = & a Este tipo de variable es un puntero que se usa para almacenar la dirección. La variable
int
es un
operador de desreferencia de
tipo p par La operación de p desreferencia encuentra el objeto a apuntado por
p * p = 20 convierte el valor a apuntado por p en 20


Hay 2 ^ 32 números binarios numerados en la memoria numerada de 32 bits , lo que significa que
hay 2 ^ 64 números binarios numerados en el número de 64 bits.

Si una memoria dentro de un tamaño de cuadrícula pequeño es la cantidad de bytes que está por encima de ese número
int a = 10 un tamaño es de 4 bytes, entonces ocuparán 4 bytes de memoria dentro de los
cuales una cantidad de direcciones Es el número del último byte de los 4 bytes.

Supongo que te gusta

Origin blog.51cto.com/14982478/2545539
Recomendado
Clasificación