读书人

指针变量对字符串操作有关问题

发布时间: 2012-02-13 17:20:26 作者: rapoo

指针变量对字符串操作问题
c语言中,字符型指针变量可以指向一串字符并对其操作,可在程序设计中,并没有预先为这串字符在内存中开辟空间并将其存放,这样就不太好理解了,因为c语言中对数据操作总是事先为其在内存中开辟空间再进行,而上述情况却与之不符,何解?

[解决办法]
内存空间分为栈内存和堆栈内存,
一般栈内存的生存周期较短,与临时变量等同,只不过是一段连续空间罢了,
所以:char *p = "sadlkfj ";等效与:char p[8]; strcpy(p, "sadlkfj ");
而char *p = malloc(8);所分配的是堆栈内存空间,在你使用free(p)之前,其生存周期一直有效。

读书人网 >C语言

热点推荐