C语言问题,以下三个程序几乎一样,为什么一个,第二个能正常运行,第三却不可以,请大神详细解答

作者&投稿:胥牲 (若有异议请与网页底部的电邮联系)
C语言问题,两个函数程序为什么第一个有交换效果,第二个却没有,请大神帮忙解答~

第一个是传值,在计算机会重新开辟内存在存储局部变量,也就意味着在内存里会有两套数字,函数里交换的是新开辟的,而原来的值不会交换!!!第二个传的仅仅是地址,在内存里只有一套数字,所以交换的就是真身

不是什么英雄 是壮志雄心吧 这是百度百科简介,应该是吧 http://baike.baidu.com/view/82142.html?wtp=tt

第一个:虽然没有把s1中的字符串结束符'\0'拷贝到s2,但s2初始化为全0,也就是全'\0'了,所以拷贝前s2中就都是'\0'了,没有拷进s1的'\0',就由s2原来的'\0'充当了。所以能正确输出。
第二个:这是个比较正宗的写法,由于用i<=j控制,所以把s1中的'\0'拷进了s2,当然就能正常输出了。
第三个:通过上面分析你应该已经知道了——由于用i<j控制,所以只拷进了s1的'\0'前的字符,s2又没有初始化,一般是不为'\0'的,所以最后s2少了字符串结束符,最后会在输出正常s1字符串的内容后还输出一些乱码,直到遇到'\0'才结束。


语言发育迟缓的根本原因是什么
使他缺少了语言刺激,没有语言的记忆。3、智力和情绪因素:智力发展出现迟缓,必然导致与其程度相对应的语言发展的迟缓。无论是开始讲话的时间,还是对双字词的使用,以及在语言发展的各个方面都要比正常儿童慢一步。大多数情绪方面的问题,主要是患者在人际关系方面难以交往,影响对语言的理解和表达。

面试中的突破性思维问题
面试官问一些看似毫无边际的问题可不是故意为难求职者,很多不可预知的问题都是为了特定的目的才问的。一般来说,面试官无非会问我们这三类的问题,来测试我们在面临压力下表现如何,以及我们的突破性思维怎样? 以下列出了三个示范问题,并附有一些见解,讲解了面试官的目的,以及我们该如何应对这些问题: “如果你正在写...

在工作群里发言应该注意哪些问题?
作为一名职场人士,在工作群里发言需要注意以下问题:1.尊重他人:在群里发言时要注意尊重他人,不要使用不当的语言和表达方式,不要发表与工作无关的攻击性言论。2.避免过多聊天:在工作群里发言,应该避免发表过多聊天内容,尽量只说与工作相关的内容,不要影响他人的工作效率。3.避免涉及敏感话题:在...

小米怎么设置韩文?
小米手机设置韩文的方法可以根据不同的需求分为设置系统语言为韩文、添加韩文输入法以及显示韩文字体三个方面。以下是具体的设置步骤:一、设置系统语言为韩文打开手机设置:在主屏幕上找到并点击“设置”图标。进入语言和输入法设置:在设置界面中,滑动屏幕找到“更多设置”或类似的选项(不同的小米手机版本...

怎么回答顾客说你们家东西太贵?
●营销语言模板 销售人员:先生,买东西不能只考虑便宜问题。您以前有没有用过同类的商品?那种便宜的商品可能用段时间就开始出现质量问题,比方说自行车,那种便宜的自行车骑两三个月就开始到处生锈,链条经常掉,脚踏也经常掉,骑起来很费力,除了铃铛不响,上下哪里都响。但是要是买一辆好的自行车比如捷安特,你骑两年都不...

我有个PASCAL语言编程问题!!急
READ(X,Y,Z),其意思是等待用户由键盘输入三个数,这三个数按输入的次序依次赋给变量X,Y,Z。它等价于以下三个语句:READ(X);READ(Y);READ(Z)。 注意事项: 1 由键盘输入的数据类型要与变量的数据类型一致,不能出现将一个实数赋给一个整型变量之类的错误。 2 输入的数据个数要与READ语句中变量的个数一致...

求解C语言问题!!
第一次循环,k=5 执行 k--;第二次循环,k=4 执行 k--;第三次循环,k=3 执行case 3 n+=k;k--; 此时n=3;k=2;第四次循环,k=2 执行case2;case 3 n+=k; k--; 此时n=5;k=1;第五次循环,k=1 执行case 1 n+=k;case 2;case 3 n+=k; k--; 此时n=7;k...

计算机c语言,有几个问题,望解答,准备计算机二级的菜鸟在此谢过...
【2】C语言的注释可以放在程序的任何地方,只要写在注释符\/**\/中就可以。【3】应该跟你理解的也要,C的类型int也是标识符,命名的时候不要和那些系统默认的符号重复就可以了。【4】char c1,c2\/*定义两个字符型变量*\/ c1='A'+'8'-'4'\/*这些加减数都是字符型的,转换成ASCII码然后再进行加减...

仿照示例拆拼以下三个汉字,并用富有文采的语言描述它。
蚕 湛蓝天空下一只勤恳的昆虫,每一根丝线都汇集着对重生的渴望。忍 尖利刀刃下那颗暂时屈服的心,在那背后有着惊人的力量。武 放下兵器求得和平的人啊,那才是武人真正的心。

办了一张建行visa信用卡,被免签名语言问题
办了一张建行visa信用卡,被免签名语言问题 办卡的记录中英文都有,信用卡背面必须签名之后才能使用。你在卡片上签名什么样,刷卡时签名也要什么样。银行要核对的是签名是否一致,笔迹是否相同。主卡在国内用中文肯定没问题;副卡在国外用,如果卡片上签名是中文,刷卡是签名是英文(或者相反,总之是不...

嘉善县18763263842: C语言问题:下列程序执行后输出的结果是 -
万的可达: 4,D)正确,选D)——for循环调用两次f,第一次调用返回3(a=c++使a==3),第二次调用返回4(由于c是static变量,上次调用时3赋给a后c++变c为4).最后输出是第二次调用后的返回值.

嘉善县18763263842: 有关C语言的一道题目 2011江苏春季笔试中的 求答案和详细讲解!!急! -
万的可达: B不一样,ACD在a>b条件成立下那三个赋值语句执行,不成立下不执行.而B在a>b条件成立下也都执行,但条件不成立时B仍然有a=b;b=c;执行到,...

嘉善县18763263842: C语言的问题紧急,下面的程序有什么问题吗?总是输入10个数,输出和输入一样.
万的可达: 冒泡排序部分错误: {t=a[i];a[i]=a[i+1];a[i]=t;} 你这个交换两个值是错误,应改为 {t=a[i];a[i]=a[i+1];a[i+1]=t;}

嘉善县18763263842: 以下比较三个数大小的C语言程序为什么不对 -
万的可达: 你好.是这样你的if条件书写格式有问题. if (a > b > c) 中a>b>c 先判断a>b得到true或者false,(1,0)再判断1>b或者0>b,你输入b大于1.所以后面的语句都不执行. 改成if(a>b && b > c)

嘉善县18763263842: 求助C语言中三个数比较问题程序 -
万的可达: /* ver 0.1 */ #include<stdio.h> int max(int a,int b); int min(int a,int b); int main() { int a,b,c; int he,pingjun,ji; printf("please input three nunber:\n"); scanf("%d\n %d\n %d\n",&a,&b,&c); he=a+b+c; pingjun=he/3; ji=a*b*c; printf("he :%d\n",he); ...

嘉善县18763263842: 有一些c语言题目不会啊,请给我解答一下吧! -
万的可达: 我也正好算这个问题 1.有以下程序 #include <stdio.h> main( ) {char a,b,c,d; scanf("%c%c",&a,&b); c=getchar(); d=getchar(); printf("%c%c%c%c\n",a,b,c,d); } 当执行程序时,按下列方式输入数据(从第一列开始,<CR>代表回车,注意:回...

嘉善县18763263842: C语言题目:分析以下程序 -
万的可达: #include<stdio.h> void main() { char c,string[81];int i,a=0,b=0; gets(string);//获得字符数组string for(i=0;(c=string[i])!='\0';i++)//扫描字符串 if (c==' ') a=0;//如果c为回车则a=0 else if(a==0)//如果c不等于0,且a=0则a=1,b++ { a=1; b++; } printf("%d\...

嘉善县18763263842: 一个C语言基础问题... -
万的可达: i++和++i正如前几楼说的有区别,但在for循环里这样用结果应该没有影响,如你所示for(i=1;i<=100;i++)s=s+i;其执行顺序: 1. i=1; 2. s=s+i; 3. i<=100; 4.i++;(或++i) 5.重复2...

嘉善县18763263842: 有一个c语言的问题请大虾帮忙回答下
万的可达: #include <stdio.h> #define swap(a, b){ t = a; a = b; b = t; } int main() { int a, b, c, t; scanf("%d%d%d", &a, &b, &c); if(a > b) swap(a, b); if(a > c) swap(a, c); if(b > c) swap(b, c); printf("%d %d %d\n", a, b, c); return 0; }

嘉善县18763263842: C语言 问题,请教下. -
万的可达: 在定义指针的时候,可以直接给它赋初始地址,如先定义变量a,再定义指针变量*p指向a,程序如下:int a;int *p=也可以写成以下程序:int a;int *p;p=回到你的问题,p是代表地址,*q是指针变...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网