社区
C语言
帖子详情
指针常量??
jadeinsea
2003-10-17 08:43:26
const int* const ptr="asdf";是指针常量吧. 指针常量的特点是指针的地址不能修改,而指针所指向的对象的内容可以修改,在钱能的书上有:
const int* const ptr="asdf";
*ptr='b';
cout << ptr;
书上说应该输出"bsdf",在win+VC6.0下面,编译正常,但运行时候不行,原因是非法的内存操作.
Reason?
...全文
29
8
打赏
收藏
指针常量??
const int* const ptr="asdf";是指针常量吧. 指针常量的特点是指针的地址不能修改,而指针所指向的对象的内容可以修改,在钱能的书上有: const int* const ptr="asdf"; *ptr='b'; cout << ptr; 书上说应该输出"bsdf",在win+VC6.0下面,编译正常,但运行时候不行,原因是非法的内存操作. Reason?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
jadeinsea
2003-10-21
打赏
举报
回复
Ok
jadeinsea
2003-10-19
打赏
举报
回复
char* const pc = "asdf";
// pc = "dfgh"; //Error
cout << "The original Pointer value = " << pc << endl;
*pc = 'b'; //该语句有问题,BC中可以。
cout << "The new Pointer value = " << pc << endl;
上面的程序在debug/Release 下面都不可以啊!
晨星
2003-10-18
打赏
举报
回复
首先,严格讲,"asdf"不能算字符数组,就是字符串常量,当然,你可能不喜欢这个翻译,那么就按照英文原文,直接叫做“String literal”好了。
其次,在我的机器上,VC6中,“int* const ptr="asdf";”不能通过编译。
如果改为“char* const ptr="asdf";”则可以通过编译。在Debug版中,的确不能正常运行。
字符串常量保存在静态存储区中,为了与C兼容,C++标准没有规定是否允许修改静态存储区中的字符串常量。而VC6的Debug版本则可能对静态存储区中的字符串常量进行了保护,导致出错。Release版下没有问题。
jadeinsea
2003-10-18
打赏
举报
回复
诸位的回答都不能令人信服.
首先,int* const ptr="asdf";中大"asdf"是字符数组,不时字符串.
另外,我说的是在VC+Win中不可以,但C++标准应该支持的,而且在Borland c++ for dos中就可以,我想知道的是VC不支持,还是WIN操作系统的问题.
Wolf0403
2003-10-17
打赏
举报
回复
const int* const ptr = new int[5];
strncpy(ptr, "asdf", 5);
*ptr='b';
cout << ptr;
daizh
2003-10-17
打赏
举报
回复
int* const ptr="asdf";说明ptr是指针常量,即指针的值不可以改变,但是指针指向的内容可以改变。但是对于这个语句,由于是将"asdf"字符串常量赋值给ptr,而其字符串是存放在data的const内存中,则ptr指向const区域,因而*ptr='b'是错误的。
jadeinsea
2003-10-17
打赏
举报
回复
Sorry,写错了
应该是:
int* const ptr="asdf";
daizh
2003-10-17
打赏
举报
回复
const int* const ptr="asdf";说明ptr指针本身是常量,它指向的内容也是常量,两者都不可以改变。
简单总结C++中
指针常量
与常量指针的区别
我们先回顾下,什么是指针?什么是常量?指针是一种特殊的变量,它里面存储的内容是内存地址。常量是指其里面存储的内容不能发生改变的量。明白了这两个概念后,我们现在正式进入
指针常量
与常量指针。 1.
指针常量
与常量指针的概念
指针常量
就是指针本身是常量,换句话说,就是指针里面所存储的内容(内存地址)是常量,不能改变。但是,内存地址所对应的内容是可以通过指针改变的。 常量指针就是指向常量的指针,换句话说,就是指针指向的是常量,它指向的内容不能发生改变,不能通过指针来修改它指向的内容。但是,指针自身不是常量,它自身的值可以改变,从而指向另一个常量。 2.
指针常量
与常量指针的声明
指针常量
的声明:数据类型
数组和指针的关系
数组名是个常量指针(const pointer)? 你TM在逗我?数组名只是个名字,你能给它个类型? 像下面这些命题: 数组是指针 数组是
指针常量
数组是常量指针 数组名是常量指针 数组名是
指针常量
统统,统统都是错的。后两个是扯淡,变量名字也有类型??这些其实都是说的是数组,不管行为怎样令人迷惑,但都是说的数组,不应该有数组名是xxx这个说法。 说下性质: int a[10] = { 0 }; int * ptr = NULL; int * const cptr = NULL; // const pointer
常量指针与
指针常量
?
常量指针与
指针常量
? 常量指针: 修饰指针 const int * p;
指针常量
: 修饰指针指向的内容 int * const p; 详细请参照博客https://blog.csdn.net/weibo_dm/article/details/80445205 ...
指针常量
和常量指针
*代表(指针、地址) const代表(内容)。
指针常量
:按照读法 声明是 int * const a = &b; 常量指针: const int * p; int const *p; 谁在前面谁不允许修改,
指针常量
指针在前,指针表示指向,所以指向不可改。 常量
指针常量
在前,const表示内容,所以内容不可改。 ...
常量指针、
指针常量
、数组指针、指针数组、函数指针、指针函数 你分清楚了吗????好记好记!!!
常量指针、
指针常量
、数组指针、指针数组、函数指针、指针函数 啊啊啊 我是服了 学计算机的已经进了绕口令行业!!!! 不得不佩服:指针你咋这么sao呢,啥都有你。。。。。 我是被这个几个词彻底搞不行了,下决心找规律,加强记忆!喜欢就喷我吧!!! 以下都是我的技法:不管是啥,上来你就先***再**** 记住这个,你已经成功一半了!!!真的 不骗你。具体一点就是,哪个词再前面,就是先它,哪个词再后面,就是再它。你可能搞不明白。那你就听我细细道来。 常量指针:先常量,再指针。 详解:先常量..
C语言
69,373
社区成员
243,080
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章