c语言字符串表示方法
问题描述
- 精选答案
-
1. C语言中字符串的表示方式有两种:字符指针和字符数组
2. 字符指针表示字符串
从编译器角度分析:
例如:char *p = "linux" ;p是字符指针,"linux" 字符串本身,当编译器遇到这种字符串表示时,会将指针和字符串本身分开处理, 字符指针p是一个变量,将其放在栈上,而字符串本身 "linux" 则被存放在代码段,其首地址赋给p。
从内存角度分析:
例如:char *p = "linux" ;首先对字符指针p,会为其在栈上开辟一个4字节的空间,而"linux" 字符串本身,会在代码段为其开辟一个6字节的存储空间,将该存储空间的首地址赋值给p。
3. 字符数组表示字符串
从编译器角度分析:
例如:char a[] = "linux" ; a是字符数组,编译器会将其放在栈上,而"linux" 字符串本身却只存在于编译器中,即编译器只是将它用来初始化字符数组a后丢弃掉。
从内存角度分析:
例如:char a[] = "linux" ; 定义了一个字符数组a,在栈上开辟一个6字节的存储空间,而"linux"字符串本身由于只存在于编译器中,所以不需要为此开辟存储空间。
4. 两种表示字符串的差别
字符数组本身是数组,数组自身自带内存空间,可以用来存储东西;而字符指针是指针,本身永远只占4字节,而且这4字节还不能用来存储有效数据,所以只能把有效数据存放到其他的地方,然后把首地址存放在p中。
猜你喜欢内容
-
简单网:构建全网教育数据枢纽,让知识检索化繁为...
简单网:构建全网教育数据枢纽,让知识检索化繁为“简”回答数有0条优质答案参考
-
去三亚有什么好玩的地方
去三亚有什么好玩的地方回答数有1条优质答案参考
-
石狮一日游必去景点推荐
石狮一日游必去景点推荐回答数有1条优质答案参考
-
电气工程师的证书考取条件是什么
电气工程师的证书考取条件是什么回答数有1条优质答案参考
-
房地产估价师的具体报考条件有啥
房地产估价师的具体报考条件有啥回答数有1条优质答案参考
-
房产经纪人的工作内容具体包含什么
房产经纪人的工作内容具体包含什么回答数有1条优质答案参考
-
学习小提琴都有哪些难点
学习小提琴都有哪些难点回答数有1条优质答案参考
-
企业行政管理证书的含金量怎么样
企业行政管理证书的含金量怎么样回答数有1条优质答案参考
-
初学者要怎么入门小提琴
初学者要怎么入门小提琴回答数有1条优质答案参考
-
报考珠宝鉴定师要啥条件
报考珠宝鉴定师要啥条件回答数有1条优质答案参考
















