No lo hace.
El terminador de cadena es un byte que contiene todos los 0 bits.
El int sin signo tiene dos o cuatro bytes (dependiendo de su entorno), cada uno de los cuales contiene todos los 0 bits.
Los dos elementos se almacenan en diferentes direcciones. Su código compilado realiza operaciones adecuadas para cadenas en la ubicación anterior y operaciones adecuadas para números binarios sin signo en la última. (¡A menos que tenga un error en su código o algún código peligrosamente inteligente!)
Pero todos estos bytes tienen el mismo aspecto para la CPU. Los datos en memoria (en la mayoría de las arquitecturas de conjuntos de instrucciones comunes actualmente) no tienen ningún tipo asociado. Esa es una abstracción que existe solo en el código fuente y significa algo solo para el compilador.
Edición agregada: como ejemplo: es perfectamente posible, incluso común, realizar operaciones aritméticas en los bytes que forman una cadena. Si tiene una cadena de caracteres ASCII de 8 bits, puede convertir las letras en la cadena entre mayúsculas y minúsculas sumando o restando 32 (decimal). O si está traduciendo a otro código de caracteres, puede usar sus valores como índices en una matriz cuyos elementos proporcionan la codificación de bits equivalente en el otro código.
Para la CPU, los caracteres son realmente enteros extra cortos. (ocho bits cada uno en lugar de 16, 32 o 64). Para nosotros, los humanos, sus valores están asociados con caracteres legibles, pero la CPU no tiene idea de eso. Tampoco sabe nada acerca de la convención "C" de "byte nulo termina una cadena" (y, como muchos han señalado en otras respuestas y comentarios, hay entornos de programación en los que esa convención no se utiliza en absoluto) .
Para estar seguros, hay algunas instrucciones en x86 / x64 que tienden a usarse mucho con cadenas, el prefijo REP, por ejemplo, pero también puede usarlas en una matriz de enteros, si logran el resultado deseado.