C程序的一个小问题

问题描述

void main(){char *str = "china";printf("%cn",str[1]);//*(str+1) = *(str+2); // 在vc6.0下运行时出错,不明白是什么原因puts(str);}在winTc下是没问题的,在vc6.0下编译和链接都没问题,但是运行的时候,注释的那行出错了,不明白是什么原因,请各位给个提示,谢谢! 问题补充:563412561 写道

解决方案

嗯,以下是我的理解: 因为创建数组是不会共享同一个内存空间的!所以即使数组内容一样,也不会存储在同一空间中,除非你刻意赋值!我上面举得例子是:char *x = "xxxxxx"这样的声明,是会共享同一个内存空间,说得明白一点是,举个例子:char *ptr = "chinc" ;char *ptr1 = "chinc" ;printf("%d,%dn",ptr,ptr1) ;printf("%dn",&"chinc") ; 上面输出地值是全部相同的,意思是chinc这个字面字符串就是可以被共享的!下次再出现这个字面字符串时就不用再创建了!就直接到指定的内存中读取就可以!但对于数组却不会,这点你可以自己做实验。 额,可能说的不太明白,呵呵,也许是我的水平有限!!
解决方案二:
应该是分配内存的问题,有些内存是不可写的,比如有些游戏内存是不可读的。举个例子: 在用char *x = "xxxxxx"创建C风格字符串时,会在存储区域创建一个已结尾的xxxxxx存储空间,而且将x指向它的首地址,比如首地址是1,那么这个空间还在使用的时候,X指向的内容就不能被改变!,比如像你上面的那个例子*(str+1)是一个值来的,把*(str+2]的值赋给它是错误的,比如str[1]='c'同样是一样的错误。总之: 声明的字符串“china”正在被指向,所以这个区域内的内容暂时不能被改变~~这是本人的理解,不知对否!!

时间: 2024-09-09 00:56:50

C程序的一个小问题的相关文章

设计一个小程序,将已有的asp程序转换为jsp程序

问题描述 设计一个小程序,将已有的asp程序转换为jsp程序 设计一个小程序,将已有的asp程序转换为jsp程序.运用java与web应用 解决方案 说得轻巧,"设计一个小程序",还"运用java与web应用".这是两种不同的技术,不但语言不同,而且类库也不同,就算用到"编译原理"也无济于事. 解决方案二: 这个跨度可有点大了. 解决方案三: 可以参考: <设计一个小程序,将windows转换为国有操作系统> 解决方案四: 这个比较麻

结果是什么啊-一个小程序,求解答啊

问题描述 一个小程序,求解答啊 在别人文章里看到的程序 程序的输出结果是什么,why? #include int main() { int a[5] = {1,2,3,4,5}; int p = (int)(&a + 1); printf("%d, %dn", *(a + 1), *(p -1)); } 解决方案 int a[5] = {1,2,3,4,5}; int* p = (int*)(&a + 1); printf("%d, %dn", *(

用VB.net制作一个小程序(2)

程序 用VB.net制作一个小程序(2)----制作"Lucky7"程序作者:高山 它是一个模拟幸运数字投币机的游戏程序.此程序的用户界面中包括两个按钮,3个幸运数字框,表示获胜的数字图象以及Lucky 7标签. Public Class Form1 Inherits System.Windows.Forms.Form #Region " Windows 窗体设计器生成的代码 " Public Sub New() MyBase.New() '该调用是 Windows

用VB.net制作一个小程序(3)

程序 用VB.net制作一个小程序(3)----制作"Input Controls"程序(3)接上 'PictureBox2 ' Me.PictureBox2.Location = New System.Drawing.Point(480, 136) Me.PictureBox2.Name = "PictureBox2" Me.PictureBox2.Size = New System.Drawing.Size(80, 56) Me.PictureBox2.Size

用Python程序抓取网页的HTML信息的一个小实例

  这篇文章主要介绍了用Python程序抓取网页的HTML信息的一个小实例,用到的方法同时也是用Python编写爬虫的基础,需要的朋友可以参考下 抓取网页数据的思路有好多种,一般有:直接代码请求http.模拟浏览器请求数据(通常需要登录验证).控制浏览器实现数据抓取等.这篇不考虑复杂情况,放一个读取简单网页数据的小例子: 目标数据 将ittf网站上这个页面上所有这些选手的超链接保存下来. 数据请求 真的很喜欢符合人类思维的库,比如requests,如果是要直接拿网页文本,一句话搞定: ? 1 d

c-求大神解惑!一个小程序运行不了

问题描述 求大神解惑!一个小程序运行不了 #include #include struct data{int daymonthyear;} ;struct stu {char name[20];long num;struct data birthday;} ;int main(){struct stu *student; student=malloc(sizeof(struct stu)); printf(""Input namenumberyearmonthday:/n"&

关于hadoop pig编写的一个小程序 

问题描述 关于hadoop pig编写的一个小程序 在微博中如果a关注b b也关注a则他们构成相互关注关系.如果输入的文件1.txt里的内容如下23 1221 2331 2323 21 每一行表示a的代号和关注他的人的代号怎么写Pig 输出 相互关注的每一对.比如这上面的数据中输出21 23(且不重复输出这一对)

关于BaseAdapter的一个小程序的问题

问题描述 关于BaseAdapter的一个小程序的问题 额,代码比较长................... public class Main extends ListActivity { private static String[] applicationNames = new String[] { "多功能日历", "eoeMarket客户端", "耐玩的重力消砖块", "白社会", "程序终结者"

c++-初学C++ 一个小程序 求大神帮忙看下

问题描述 初学C++ 一个小程序 求大神帮忙看下 //分秒显示函数 #include using namespace std; //全局引用std命名空间 void showTime(int ,int); int main() { int hours =0 , mins = 0;//定义且初始化分 和秒 cout << "Input the hour "; cin >> hours; cout << "Input the mins &quo