没有。
字符串终止符是一个包含所有0位的字节。
unsigned int是两个或四个字节(取决于您的环境),每个字节包含所有0位。
两项存储在不同的地址。您编译的代码在前者的位置执行适合于字符串的操作,在后者的位置执行适合于无符号二进制数的操作。(除非您的代码中有错误或某些危险的聪明代码!)
但是所有这些字节在CPU上看起来都是相同的。内存中的数据(在大多数当前常见的指令集体系结构中)没有任何关联的类型。那是仅存在于源代码中的抽象,仅对编译器有意义。
编辑添加:作为示例:完全有可能,甚至很常见,对组成字符串的字节执行算术运算。如果您有一串8位ASCII字符,则可以通过添加或减去32(十进制)在字符串中的字母转换为大写和小写形式。或者,如果要转换为另一个字符代码,则可以将它们的值用作数组中的索引,该数组的元素提供其他代码中的等效位编码。
对于CPU来说,字符实际上是超短整数。(每位8位,而不是16位,32位或64位。)对我们来说,它们的值恰好与可读字符相关联,但CPU对此一无所知。它也对“空字节结束字符串”的“ C”约定一无所知(正如许多其他答案和评论所指出的那样,在编程环境中根本没有使用该约定) 。
可以肯定的是,x86 / x64中有一些指令经常与字符串一起使用-例如REP前缀-但是,如果它们能达到期望的结果,则也可以在整数数组上使用它们。