社区
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?
...全文
30
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
03Go语言实战之变量与常量
课程介绍了go语言当中的变量和常量使用方法,包含了变量的声明方式、简短变量声明、变量的作用域、指针、按值传递和按址传递的区别、常量介绍
常量指针与
指针常量
?
常量指针与
指针常量
? 常量指针: 修饰指针 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表示内容,所以内容不可改。 ...
C语言
69,373
社区成员
243,080
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章