C语言字符串常量的好处

“Hello World”

这是一个表达式,其值是一个指针,这个指针指向了一个地址,这个地址可以依照字符串的方式来读取。

在顺序末尾运转的时分,就会自动开拓一块内存来贮存这几个字符,并将这块内存的地址,作为”Hello World”这个表达式的值。

很显然,假设我们写下printf( “Hello World” );输入的却是:”Hello Ivony”,这会是十分令人匪夷所思而且无法了解的对吧?

但是假设”Hello World”这个指针所指向的内存区域,是可以修正的,那么下面这种匪夷所思的状况就会出现。

把字符串常量的内存空间设置为只读的是一种十分自然的设计,由于在C言语外面,字符串表达式的值就是一个指针,假设这个指针指向的内存空间可以被修正,那就会出现当我们运用这个字符串的时分,它能够曾经被他人改了?

而且理想上字符串原本就被设计为是个指针,那么把它放在堆栈上,赋值的时分复制来复制去,以求可以更改岂不是更不自然的设计?

提供最优质的资源集合

立即查看 了解详情