| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 364 人关注过本帖
标题:C语言,关于指针,写入变量的问题,求高手多多指点,谢谢!!谢谢!!
取消只看楼主 加入收藏
weishen2011
Rank: 2
等 级:论坛游民
帖 子:92
专家分:70
注 册:2012-10-16
结帖率:80%
收藏
已结贴  问题点数:10 回复次数:1 
C语言,关于指针,写入变量的问题,求高手多多指点,谢谢!!谢谢!!
#include<stdio.h>
#include<stdlib.h>
int main()
{
char str[]="hello";

printf("请输入一个字符串:\n");
scanf("%s",str);

printf("您输入的字符串为:%s\n",str);
printf("还能做做剩下的工作吗?!");
system("pause");
return 0;
}
为什么指针指向常量字符串的情况下还可以写入其他的字符串啊???
搜索更多相关主题的帖子: 工作 include system return 
2012-11-22 12:12
weishen2011
Rank: 2
等 级:论坛游民
帖 子:92
专家分:70
注 册:2012-10-16
收藏
得分:0 
以下是引用liufashuai在2012-11-22 15:56:10的发言:

其实是楼主理解错了,数组是常量指针,是指的数组名字是常量指针,该指针不能赋值,也就是数组名不能重新赋值
在不改变该指针的指向的情况下,改变数组内的数据是允许的
因为数组空间分配在栈上,只是用字符串常量初始化,所以,即使你改变了数组内的内容,常量存储区的字符串还是没有改变
是可以的

但是如果你定义的是一个指针的话,指针赋值直接指向常量区,那就不能更改了,如果改了,可能能通过编译链接(我在VC6.0下试过了,如果编译器检查比较严格,可以在编译器见检查出来)
但是运行肯定会报错的(一般式什么地址不可写)


为什么用数组定义的时候数组内数据能改,用指针定义就不行了呢?还是不太理解!
数组名不就相当于一个指针吗?指向数组的起始地址!为什么指针定义的就不能修改,而数组定义的就可以呢??
2012-11-22 22:41
快速回复:C语言,关于指针,写入变量的问题,求高手多多指点,谢谢!!谢谢!!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.071082 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved