2 yunsiyun yunsiyun 于 2016.03.12 14:21 提问

一段C语言程序的输出结果 不太理解 求大侠们解释一下 谢谢谢谢

int main(void){
int n;
char y[10]="ntse"
char *x=y;
n=strlen(x);
*x=x[n];
x=++;
printf("x=%s\n",x);
printf("y=%s\n",y);
return 0;
}

结果为
x=tse
y=

不太能理解为什么y为空?
y被修改了吗?

5个回答

lx624909677
lx624909677   Ds   Rxr 2016.03.12 14:24

字符串赋值不能直接等于,直接等于是地址指向一个常量字符串地址,而本身并没有数据

qq_25093755
qq_25093755   2016.03.12 14:30

C语言的指针内存地址,y本身是没有数据的

ISEUWEI
ISEUWEI   2016.03.12 15:00

字符串以\0表示结束,指针指向第一个字符,指针赋值只是把第一个字符的地址给另一个指针,输出时遇到\0结束,本题x=x[n],第一个字符被末尾的结束符填上,指针后移一位,从第二个字符开始输出,这样说理解?

u010298834
u010298834   2016.03.12 15:02

我尝试给你分析一下:
1:第7行是错的,我暂且认为你应该是写成x++;或x=x+1;
2:首先我们分析可知n = 4,而现在x指针指向y数组的头部,即指向y[0];
3:那么x[n]我们知道字符串数组以'\0'做结尾标记,故x[n] = '\0'; 所以*x =‘\0’;即y[0] = '\0';
4: 此时x++后,x指向y[1]的地址,故输出x的值为:tse;
5:那么y数组在内存中的内容为“\0tse”;所以输出y则肯定为空!!!

ISEUWEI
ISEUWEI   2016.03.12 15:02

x从第二位输出,y仍从第一位输出,但被\0填上了

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
【第7天】时刻不忘感谢别人的好意
正文 时刻不忘感谢别人的好意     有没有一个词语,一讲出来就会立刻赢得别人的好感,可以化敌为友,抚平自私心理,可以提高自尊心?有,这个词就是“谢谢”。一句“谢谢”,可以让帮助你的人感到欣慰,也体现了你的礼貌。说声“谢谢”,本是世界上最容易,也是最为可靠的办法。然而,它却常常被人轻视,或因太简单而被忽略。我们常常听到这种抱怨:“我并不介意做所有这些事,只要他每次能说声‘谢谢’。”“我为她做了那
谢谢官人打赏
如果觉得文章真心好, 请打赏下我吧,程序员赚钱不容易。 一块两块不嫌多, 一分两分也是爱啊!
最强中国象棋单机版下载:谢谢大师象棋软件[完美破解版]
最强中国象棋单机版下载:谢谢大师象棋软件[完美破解版]最强中国象棋 谢谢大师象棋软件 v2.41 完美破解版这个是特别版,软件在安装后,已经自带注册码了!据说这个谢谢大师是中国最强的单机版象棋软件,其能力足够挑战真正的象棋大师!网上很难找到,这个是我电脑上永久保存的东西,今天上传到服务器,给大家共享下!安装后,首次运行,选择-中文,就是中国的英文下载:谢谢大师象棋软件 v2.41 完美破解版 
首先谢谢大家的关注!
首先谢谢大家的关注! 谢谢大家! 谢谢大家!! 谢谢大家!!! 重要的事情要说好几遍~ 首先做个自我介绍吧 中文名字是乔浩磊  英文名字是feiyu~ 哈哈当个玩笑就好了~ 现就读于河南某高校 正在完成小时候的梦想——步入IT 行业 本人从小酷爱计算机,接触电脑时间比较早打过无数游戏用过无数电脑系统当然~~也玩坏过无数次系统 想在大学期间利用空闲时间积
D-改革春风吹满地
“ 改革春风吹满地, 不会AC没关系; 实在不行回老家, 还有一亩三分地。 谢谢!(乐队奏乐)” 话说部分学生心态极好,每天就知道游戏,这次考试如此简单的题目,也是云里雾里,而且,还竟然来这么几句打油诗。 好呀,老师的责任就是帮你解决问题,既然想种田,那就分你一块。 这块田位于浙江省温州市苍南县灵溪镇林家铺子村,多边形形状的一块地,原本是linle 的,现在就准备送
谢谢捧场!
<br />我是新手中的新手,今天刚刚开张,感谢各位前辈捧场
Oracle11G数据库的安装包
<br />谢谢大家  给我共享一个Oracle的安装包 <br />   无限感谢
javasript事件学习(3)
1. onclick="this.innerHTML='谢谢!'">请点击该文本 2. function changetext(id) { id.innerHTML="谢谢!"; } onclick="changetext(this)">请点击该文本 3. onmouseover 和 onmouseout 事件 onmouseo
php抽奖函数
1相较于全概率抽奖,这种方法更快更小巧,把所有情况都放到数组里在返回数组就行了。 2遍历时前一个不成功的情况下也是有概率的,最后一个在前面都没抽到的情况下也一定能抽到; 3在抽奖是概率在小也能抽到奖,也能用这种方法。function get_rand($proArr) { $result = ''; $proSum = array_sum($proArr); f
【TOMsInsight】碎片化信息的价值:懒惰与慰藉
古人云「四十而不惑,五十而知天命」,现代社会好像更迟一些。我们在不惑或知天命之前,总是在迷茫和蹉跎中寻找目标,却又不想这般等待。我们在不断的寻找着捷径,仿佛想快速的过完这一生。而寻找捷径的过程,又岂不知还是不断重复着无谓的挣扎。   2016年春节过后,互联网核心圈子好像都开始了恐慌,气氛在传递中变形,却又没人承认。大家一窝蜂的开始交流、追逐着「网红经济」各种模式,仿佛是新的风口或者爆炸点,却忽