社区
C语言
帖子详情
怎么解释下列指针和数组的区别
愤怒对抗喳喳
2002-09-28 05:29:01
char a[] = “hello”;
a[0] = ‘X’;
cout << a << endl;
char *p = “world”; // 注意p 指向常量字符串
p[0] = ‘X’; // 编译器不能发现该错误
cout << p << endl;
怎么才能修改p的指向内容呢
...全文
44
13
打赏
收藏
怎么解释下列指针和数组的区别
char a[] = “hello”; a[0] = ‘X’; cout << a << endl; char *p = “world”; // 注意p 指向常量字符串 p[0] = ‘X’; // 编译器不能发现该错误 cout << p << endl; 怎么才能修改p的指向内容呢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
愤怒对抗喳喳
2002-09-28
打赏
举报
回复
to mattrew(为西)
有问题??
tomatopj
2002-09-28
打赏
举报
回复
to 渣渣:
应该是
p = new char[6];
别忘了'\0'
xqxxl
2002-09-28
打赏
举报
回复
指针和数组是语言中很重要的部分,学好指针会让你编程容易,
灵活,但它也是最危险的,这一部分要好好学学。这里三言两语是讲不清楚的
mattrew
2002-09-28
打赏
举报
回复
在C语言里char* p="hello world";和
char* p;
p="hello world";有区别吗
应该没有把
...........
当然有区别了 上面是定义字符串
下面的编译有问题!
愤怒对抗喳喳
2002-09-28
打赏
举报
回复
哦
那么
char *a = "hello";
char *p;
p = new char[5];
strcpy(p,a)
p[0] = "X";
应该可以了把
differ1
2002-09-28
打赏
举报
回复
to fxm2002(大家好) :我不同意你的观点!!!
同意 dai_zz(渣渣) ,如果char *p="hello";那么p指向的是字符串常量,字符串常量分配的是静态存储区,是不可以被修改的。
楼主的疑问在于char *p="hello"; 与 const char *p="hello" ;有什么区别,其实如果你要赋常量字符串的话就没有区别,但是在下面的情况下就有了:
1)
char a='h';
char *p=&a;
*p='x';//ok
与
2)
char a='h';
const char *p=&a;
*p='x';// not permitted,wrong!
但这两中情况下,你都可以改变指针的指向。
愤怒对抗喳喳
2002-09-28
打赏
举报
回复
不知道楼上的看过高质量C++/C 编程指南没有示
书上对于这段代码是这么写的:
字符数组a 的容量是6 个字符,其内容为hello\0。a 的内容可以改变,
如a[0]= ‘X’。指针p 指向常量字符串“world”(位于静态存储区,内容为world\0),常
量字符串的内容是不可以被修改的。从语法上看,编译器并不觉得语句p[0]= ‘X’有什么
不妥,但是该语句企图修改常量字符串的内容而导致运行错误。
fxm2002
2002-09-28
打赏
举报
回复
)语句 const char* p 使p指向的内容不能通过指针p修改,
如:
const char *p = “world”;
p[0] = ‘X’; //error!
)语句 char *p 使p指向的内容能够通过指针p修改!
如:
char *p = “world”;
p[0] = ‘X’; //ok!
)char* p="hello world";和
char* p;
p="hello world";没区别.
愤怒对抗喳喳
2002-09-28
打赏
举报
回复
在C语言里char* p="hello world";和
char* p;
p="hello world";有区别吗
应该没有把
ToUpdate
2002-09-28
打赏
举报
回复
可以修改吧?!
愤怒对抗喳喳
2002-09-28
打赏
举报
回复
可我的指针p不是const chat* p这样分配的啊
那么const char* p和char *p不是没区别了吗
xiaott
2002-09-28
打赏
举报
回复
不能修改P指向的内容,但可以修改P的指向!
blue_coco
2002-09-28
打赏
举报
回复
不可以。
2017803数据结构答案1
1.
下列
选项中与算法的时间复杂度有关的是 2. 用单链表存储两个各有 n 个元素的有序表,若要将其归并成一个有序表,最少的比较 3. 一个队列用只带尾
指针
的单
C++
指针
和
数组
目录: 3、
数组
与
指针
4、
指针
的潜在危险 `` 3.
数组
与
指针
3.1一维
数组
与
指针
定义
指针
变量指向
数组
首元素,以
指针
变量名代替
数组
名,实现
数组
操作。(
指针
所指位置不变)
指针
变量从前到后依次指向
数组
各元素,通过
指针
的取内容运算得到对应元素。(
指针
所指位置不断变化) 例:用
下列
数据初始化一维
数组
,并通过
指针
变量求元素的最大值。 8.2 6.5 3 9.7 12 2.8 7.6 15 10.3 定义实型
指针
p指向
数组
b的首元素,max 表示最大值; 以p 代替b,通过循环语句输出
数组
的各元
指针
和
数组
的
区别
指针
和
数组
的分配
区别
数组
是开辟一块连续存储的内存空间,
数组
的标识符(
数组
名)可以代表整个
数组
。 sizeof可以获得整个
数组
占内存空间大小。
指针
是定义的时候,再栈中开辟一块内存,存放
指针
的地址(
指针
的地址:只存放
指针
的地址,不存放指向的数据) 在《C专家编程》中提出三个标准和三个例外,可以有效区分
指针
和
数组
的
区别
,以及什么情况下是相同的 规则1:表达式中的
数组
名 被 编译器当作 指向 该
数组
的第一个元素 的
指针
规则2:
数组
下标 总是 与
指针
的偏移量 相同 规则3:在函数 的 参
【C语言】学习笔记 第12章
指针
和
数组
12.3 用
数组
名作为
指针
【C语言】学习笔记 第12章
指针
和
数组
12.3 用
数组
名作为
指针
数组
指针
、
指针
数组
、函数
指针
、函数
指针
数组
、函数
指针
的
数组
的
指针
指针
数组
:正如可以创建整型
数组
,也可以创建
指针
数组
。
指针
数组
是
数组
,是一个存放
指针
的
数组
。请看
下列
例子:int *arr1[10];char **arr2[10];两个都是
指针
数组
。
数组
指针
:
数组
也是一种类型,也可以创建
数组
指针
。
数组
指针
是
指针
,是指向
数组
的
指针
。请看
下列
例子:int (*p)[10];是
数组
指针
,是一个指向10个整型元素
数组
的
指针
。那如何
区别
数组
指针
和
指针
数组
呢?这里有一个小技巧...
C语言
69,382
社区成员
243,073
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章