这里为什么说字符数组和用指针指向的字符串的占有不同的存储空间呀,它们两个存储空间各是怎么分配的呀

如题所述

char mark[]="PROGRAM"占8个字节(7个字符加一个结束字符'\0')
char *mark="PROGRAM"占4个字节,因为此时mark是指针,(指针规定只占4个字节)追问

为什么指针规定是占4个字节呀

追答

这个是C语言的硬性规定,至于为什么我也没弄明白,记住吧

追问

是指针占的是数组的一半吗?

追答

不是只是char mark[]="PROGRAM"占8个字节(7个字符加一个结束字符'\0')刚好是7个字符,如果写成char mark[]="PROGRAM123"占11个字节(10个字符加一个结束字符'\0')

记住指针在C语言中只分配4个字节就行,定义的只要是指针(不管字符串多长)都是占4个字节

温馨提示:答案为网友推荐,仅供参考
相似回答