[Lenguaje C] La diferencia entre strlen y sizeof

La diferencia entre strlen y sizeof:

  1. No existe conexión entre strlen y sizeof

  2. strlen se usa para encontrar la longitud de una cadena; solo se puede usar para encontrar la longitud de una cadena - función de biblioteca - use el archivo de encabezado

  3. sizeof calcula el tamaño de variables, matrices y tipos (la unidad es bytes) operador

Acerca de los resultados calculados

char arr1[] = “abc”;
char arr2[] = {
    
    'a','b','c'};

sizeof incluye '/0' y strlen no incluye '/0'. Si no hay '/0' en la inicialización, el resultado de strlen será un valor aleatorio.

entonces

sizeof(arr1) = 4;
sizeof(arr2) = 3;
strlen(arr1) = 3;
strlen(arr2) = 随机值;

sizeof calcula el tamaño del espacio de memoria ocupado por la variable, la unidad es bytes

El tamaño del puntero es de cuatro bytes u ocho bytes, 4 bytes en plataformas de 32 bits.

#include <stdio.h>

int main()
{
    
    
	int a = 0;
	char b = 'A';
	int arr[10] = {
    
     0 };
	printf("%d\r\n", sizeof(a));	   //4
	printf("%d\r\n", sizeof(int));     //4

	printf("%d\r\n", sizeof(b));	   //1	
	printf("%d\r\n", sizeof(char));    //1

	printf("%d\r\n", sizeof(arr));     //40
	printf("%d\r\n", sizeof(int [10]));//40
	return 0;
}

El contenido en sizeof no estará sujeto a operaciones reales.

#include <stdio.h>

int main()
{
    
    
	short s = 0;
	int a = 10;
	printf("%d\n", sizeof(s = a + 5));//2
	printf("%d\n", s);//0
	return 0;
}

Supongo que te gusta

Origin blog.csdn.net/Daears/article/details/127424252
Recomendado
Clasificación