99问答网
所有问题
c语言问题?
来个大佬详解,看不懂
举报该问题
推荐答案 2020-08-31
很久没碰这东西了。
我来解释下:
第一个while的循环是为了让指针指向第一个字符串的结尾,其目的是让第一个字符串做主串用。
第二个while的循环功能是字符连接。我们从第一个while循环得知,第一个字符串是做主串用的,指针已指向该串的结尾。那么第二个while循环是从第一个字符串结尾开始自加, 第二个字符串首地址自加。(*s1=*s2, 这个你不要被误导了,这个是当前s1<s1结尾处>地址中的值成了s2<开始处>。)直到s2中的值为空, 停止循环(付值完成)。
第三个s1=p, 这样理解:先前时, 已有一段char *XXXX的, 这个是为了保存s1首指针地址的。现在s1=p 是为了让s1指针重新得到它的首地址。
有朋友说要return啥的, 这个是不需要return。 因为该函数定义的形参是指针类型。形参的改变可以影响实参的改变。
这个题目是考察对指针的理解和基本用法。
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://99.wendadaohang.com/zd/jeee7XetettejXeWzv.html
其他回答
第1个回答 2020-08-30
用指针将两个字符串链接接起来,
前一个while循环,确定s1字符串走完,
第二个while开始将S1的逐个字符复制给s1走完,也就是末尾,
这样就可以把字符串都导入到S1中
最后一个空写的应该写return s1
追问
第二个while不太明白啊
本回答被网友采纳
第2个回答 2020-08-31
p指针指向字符串s1首部
第一个while让指针s1移动到字符串s1尾部
第二个while把字符串s2拷贝到字符串s1(指针s1移动到字符串s1尾部了,这是追加在s1字符串后面)
最后一个s1=p应该可以不要,s1是局部变量(形参)不会影响实参,只要两个while和*s1='\0'就够了,不需要指针p,而且函数没有返回值,楼上说return s1也不对,也不需要返回值
相似回答
C语言问题
编程
问题?
答:
int main(){ int i,j,n=-1;float scores[30],sum=0,temp;printf("请输入n的值(0~30):");while(n<0 || n>30) scanf("%d",&n);if(!n) return 0;for(i=0;i<n;scanf("%f",&scores[i]),sum+=scores[i],i++)printf("请输入学生%d分数:",i+1);printf("%d名学生的平...
c语言
常见
问题
有哪些?
答:
c
;c="a";在这里就混淆了字符常量与字符串常量,字符常量是由一对单引号括起来的单个字符,字符串常量是一对双引号括起来的字符序列。
C
规定以“\”作字符串结束标志,它是由系统自动加上的,所以字符串“a”实际上包含两个字符:‘a'和‘\',而把它赋给一个字符变量是不行的。4.忽略了“=”与...
一些
C语言
的
问题
,很紧急,非常感谢您能回答!!!
答:
A)
C语言
的用户标识符只能由字母和数字组成 B) C语言的用户标识符必须由字母和数字和下划线组成,其中第一个字符只能是字母或下划线 C) C语言的关键字(保留字)不能设置为用户标识符 D) C语言允许将预定义标识符作为用户标识符,编译程序不会给出出错信息,但会使预定义标识符失去意义 4.在C...
C语言
基本
问题
有哪些?
答:
一、C语言规定总是从main()开始执行的(这个函数也叫“主函数”)
。因此,你发来的题目中的(1、6、8)叙述都是错误的,都应该选择F。\x0d\x0a二、第2题中,C语言对其数据在内存中所占用的实际字节数,随着程序中声明的数据类型以及数据的多少而变化,C语言本身并没有明确规定。这题应该选F...
关于
c语言
的
问题?
答:
++a的值为1,且变量a自增为1 --b的值0,且变量b自减为0 由于子表达式--b的值为0(假),所以&&右操作数(
c
=b+3)不会判断,c还是原值3,而表达式整体值为0 所以,a=1,b=0,c=3,y=0 同理,y=(++a)||(--b)||(c=b+3)分别对子表达式求值 ++a值为1,且a自增为1 由于||表达式的做...
c语言
编程
问题
!!
答:
c语言
编程
问题
!!编写一个程序,先输入一个字符串str(长度不超过20),再输入单独的一个字符ch,然后程序会把字符串str当中出现的所有的ch字符都删掉,从而得到一个新的字符串str2,然后把这个字符串... 编写一个程序,先输入一个字符串str(长度不超过20),再输入单独的一个字符ch,然后程序会把字符串str当中出现的...
C语言问题
,求解释
答:
for语句中第1个表达式是初始化用的,第2个是循环条件,第3个是循环体执行完成后调用的 比如:for ( a;b;
c
) d;的调用顺序是:a; b是否满足,满足开始循环: d;c; b是否满足,满足继续循环: d;c; b是否满足,不满足结束循环因此题目中执行顺序就是:e1; 无条件循环即while ( 1 ),s; ...
c语言问题
。
答:
p=&x[1][1]; 是“语句”,你的程序中它不是语句,是声明,要看成“声明和初始化”。即要看成: int *p=&x[1][1];意思是 声明 p 是int型指针,指向 下标变量 x[1][1] 的地址。&x[1][1] 是 x[1][1] 的地址,即2维数组 x 的 第2行第2列 的元素 9 8 7 //第...
c语言问题
答:
printf(“%c”,ch);} 输出:a。变换成:main( ){ char ch;ch=’a’;printf(“%d”,ch);} 输出:97。以上语句ch=’a’;可以改为ch=97;在计算机中,它就是一个整数,如97,如果定义它是一个字符变量,它就是 a,如果定义它是一个整型变量,它就是97。字符可以作为整数参加运算:main(...
大家正在搜
c语言题目
c语言编程题经典100例
?c语言什么意思
c语言中%s和%c
static c语言
c++和c语言有什么区别
c语言是什么
c语言%d
c语言排序
相关问题
c语言问题?
c语言问题?
c语言问题?
C语言问题?
C语言问题。
C语言问题?
c语言问题?
C语言问题?