c语言char str什意思,C语言中,charstr的str到底表示什么?
问题:C语言中,char str的 str到底表示什么?
描述:
#include
int main()
{
#第一处
char *pstr = "abcdef";
printf("%c\n", *pstr);
#第二处
char str = 'A';
char *ppstr = &str;
printf("%c\n", *ppstr);
return 0;
}
在上面的代码中,第一处部分,pstr是指向常量区字符数组的一个指针。第二处,ppstr表示指向的是字符'A'所在内存的地址。
我的疑问是,同样定义的定义方式:char *str,第一处和第二处,却有不同的表达意思。为什么会这样?不应该是他们表达相同的意思才对吗?解决方案1:
本来就是一样的意思。指针:描述的变量的类型。
指向字符所在内存地址:描述作用。
char *pstr = "A";
这里即定义了 char 类型的指针pstr。它的用途是存放了内存上的字符"A"的地址。
PS: 涉及到常量和变量的指针问题属于其他内容,暂不展开。解决方案2:
某种意义上是同样的意思. 第一处的pstr同时也是个指向char 'a'的指针.
pstr 也 能当字符串用是因为"字符串到哪为止"这个信息是用'\0'编码到字符串本身的, 只要有首地址pstr就足够定位包括'b', 'c', ... '\0'的整个字符串.
用指针操作内存这个"机械的语义"总是不变的, 变化的是我们怎样看待内存.解决方案3:
主要区别就是指针指向的内存区段的不同。这没有原因,语言特性,c语言就是这么管理内存的,语法也就是这样。要说好处,常量区的字符串可以共享,节省内存。
第一处,如你所说,这种字符串字面量是定义在常量区。
第二处,char str = 'A';定义在栈上,然后定义一个指针指向他。
c语言char str什意思,C语言中,charstr的str到底表示什么?相关推荐
- c语言char有什么作用,C语言中char*和char[]用法区别分析
本文实例分析了C语言中char* 和 char []的区别.分享给大家供大家参考之用.具体分析如下: 一般来说,很多人会觉得这两个定义效果一样,其实差别很大.以下是个人的一些看法,有不正确的地方望指正 ...
- c语言中变量加1,c语言中,指针加1的情况.指针变量详细介绍
指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址. 要搞清一个指针需要搞清指针的四方面的内容: 指针的类型, 指针所指向的 类型, 指针的值或者叫指针所指向的内存区, 还有指针本身所占 ...
- c语言中char是多少字节,c语言中char_char c = \'\\1\' 十进制是多少_c语言char
网友求助:c语言中char_char c = \"\\1\" 十进制是多少_c语言char 问题 最佳答案 推荐答案 char一般默认是1个字节的无符号整型,范围0~255.如果是 ...
- c语言strlen用法,如何使用c语言中的strlen()函数
c语言中strlen()函数的用法是:[strlen(const char *str)].该函数用于计算字符串的长度,直到空结束字符,但不包括结束字符,并返回字符串的长度. 函数介绍: (推荐教程:c ...
- c语言以空格分割字符串_c语言中,输入任意字符串,任意空格隔开
c语言中,输入任意字符串,任意空格隔开 关注:132 答案:3 mip版 解决时间 2021-01-27 16:01 提问者更无风月 2021-01-27 01:51 如题,希望大神代码 最佳答案 ...
- c语言 strcpy原型,浅谈C语言中strcpy,strcmp,strlen,strcat函数原型
实例如下: //strcat(dest,src)把src所指字符串添加到dest结尾处(覆盖dest结尾处的'\0')并添加'\0' char *strcat(char * strDest, cons ...
- c语言while break用法举例,c语言中continue和break的用法
目前,随着计算机在人们生活和工作中的普及,其教学研究地位也在逐渐提升.C语言是一种计算机程序设计语言,其具有高级语言和汇编语言的特点.下面小编就跟你们详细介绍下c语言中continue和break的用 ...
- c语言程序关键字是什么,C语言中32个关键字详解
C语言中32个关键字详解 由 ANSI 标准定义的 C 语言关键字共32个,根据关键字的作用,可以将关键字分为数据类型关键字和流程控制关键字两大类. 一.数据类型关键字 A 基本数据类型(5个) vo ...
- C语言中字母a等于,C语言中’a’和"a"有什么区别?,c语言中“!a"是什么意思啊...
导航:网站首页 > C语言中'a'和"a"有什么区别?,c语言中"!a"是什么意思啊 C语言中'a'和"a"有什么区别?,c语言中"!a"是什么意思啊 匿名网友: 1.本质区 ...
最新文章
- AutoIt3(AU3)开发的智能驱动安装工具,用于系统封装,支持参数静默启动
- 阿里愚人节发布“如影计划”,黑科技让支付宝与掌心融为一体
- matlab nargout
- sk_buff结构分析
- PuTTY的下载、使用和设置,并推荐同类佳软——MobaXterm
- PostgreSQL 恢复模式错误日志增强 - 提供正在恢复的WAL(XLOG)文件位置
- Linux用户、群组管理
- 移动端app设计指南
- AlertDialog创建6种对话框的用法
- 2017.9.26 货币兑换 失败总结
- Hibernate和MyBatis的缓存机制和比较
- nginx的反向代理、负载均衡、页面缓存、URL重写及读写分离
- 036 关于网站的UV分析
- 测试和开发怎么互转?
- win10+deepin安装 linux修改系统启动项
- wps里ppt怎么换另一个的模板_现学现用极简技术|智能PPT,一个按键轻松搞定专业的制作!...
- 电路图:MC34063 2.2V-6V升压到7V电路
- java dnf 自动打怪,按键精灵 做DNF 自动刷图辅助
- 翻译网Gengo获1200万美元投资,价值何在
- 字符串常量和变量是什么?