关于C语言指针的一个问题如图,求解释~

如题所述

//这样理解不
int sss(char *s, char *t)
{
//(*s) 没有到字符串 s 的结尾
//(*t) 没有到字符串 t 的结尾
//(*t++==*s++) 判断对应位置的字符是否相等, 然后指针后移
while ((*s)&&(*t)&&(*t++==*s++))//条件同时成立
{
;
}
//终止时(1) s 指向结尾, t 没有到结尾, 返回 (*s - *t) 为正数
//终止时(2) s 指向结尾, t 指向结尾, 返回 (*s - *t) 为 0
//终止时(3) s 没有到结尾, t 指向结尾, 返回 (*s - *t) 为负数
return (*s - *t);
}

温馨提示:内容为网友见解,仅供参考
第1个回答  2014-12-17
应该是三个条件不太清楚吧?

(*s)指的就是指针s不为空,(*t)也是这个意思。当两个指针指向的东西都不为空时,才进行比较。
*t++==*s++可以拆成三句话看,
1)比较*t==*s
2)t++
3)s++
比较t和s指向的内容是否相等,然后指针指向下一位,继续循环。当出现两个指针所指内容不一致时,返回指向内容的差。
可以改成
while((*s)&&(*t))
{
if(*s==*t)
{
s++;
t++;
}
else
{
s++;
t++;
break;
}
}追问

(*s)&&(*t)&&(*t++==*s++)到底是什么意思,求详细解释

第2个回答  2014-12-17
因为有一个等于的符号 所以是比较大小追问

完全不懂这道题,能否逐条语句详细解释一下?

追答

这道题是错的

其实他只是考察一个思想 循环的思想和比较的思想

int sss(s,t)这句语句是错的

第3个回答  2014-12-17
不懂

c语言小问题,如图,这个指针法是什么意思?
指针法就是通过指针运算来访问数组元素。指针是可以运算的!指针的运算分为加法和减法,注意和普通的数字加减法有很大的区别:指针的本质是一个内存地址,内存可以简单的认为是一整块空间,地址是从内存0开始连续的整数。指针的加法只能用指针加上一个整数,而不能是另一个地址,也就是说“指针+整数”是...

C语言指针变量问题
C语言里面的指针和数组是很有趣的。例如定义数组a[10],你可以通过a[1]访问里面的元素,也可以通过*(a+1),来访问。为什么这里可以这样用呢?ptr的类型为(int *),所以ptr在内存里面存放的就是int类型的指针,指向了某个int地址。正常情况下,你可以通过ptr访问它指向的某一个地址里面的数据,如...

C语言指针问题求解释
解释说明如下:short int *pi=5; \/\/定义了一个int型指针变量pi,存放的地址值是5\/\/而变量i的地址是5,所以pi指向了变量i,i=50。即pi=&i=5, i=50。\/\/ *ppi = *pi; \/\/这个应该是写错了吧,应该是下面这条语句!!!ppi = π \/\/&pi的值就是指针变量pi的地址值是9,而pi=5。

C语言指针的一个问题
(1) 第一个框里的代码 short* temp = *p1; 等价于下面的两条语句:short* temp;temp = *p1;所以,后面 p2=temp;和上面是一致的, 没错.(2)第二个框里的代码 没错, 指针就一个该指向指针, 但是你这里赋值一个值.这种做法是错误的, 不过对C语言来说, "错的"的意思是"不能保证正确", ...

C语言中,关于指针传递的一个问题,求高手解?
指针就是 int* float 就是float*(类推)数据名 遵守变量的命名规则即可;数据:就如前文讲的指针的数据是地址,即数据在电脑中的存储位置,将电脑比作一栋楼,数据比作楼中的房客的话,地址很好理解,最重要的是通过一个数据的地址可以访问到这个数据.在c语言中地址用16进制表示.&:{ >_< : 那么如何...

一个C语言指针问题。求大佬解答?
在这个程序中,我们首先提示用户输入方阵的尺寸,然后输入方阵的元素。接着,我们通过遍历方阵的每一行,并使用指针指向每行对应列的元素,来求出方阵对角线元素之和。最后,我们输出结果。程序的输出示例如下:include <stdio.h> int main(){ \/\/ 方阵的尺寸 int n;printf("Enter the size of the ...

一道C语言指针类问题(有答案,解释一下过程)
i=0;i<2;i++ j+=2 这两句,可以得知,分析的字符是p[0][0]、p[0][2]、p[1][0]、p[1][2],即 '3'、'9'、'2'、‘8’if((p[i][j]-'0')%2) 是判断上述字符转换为数字后,哪个是奇数(模2不等于0),可以得知是 '3'、'9'num初始值是0,第一次分析出3后 num = '...

c语言指针问题
pp是一个二维字符串类型的指针,也就是说它能保存2*3=6个字符串地址,每个字符串都只保存地址,这样就不限制大小,所以保存的是字符串;pp是这个指针的名字,它也代表的是该指针的首地址!pp是取pp的值,即它保存的地址!等价于pp[0];看1,***(pp+1),其中pp+1代表第二行,*(pp+1),即就...

c语言问题如图,求分析
strlen(str1) 是指str1的字符串长度,是6个字节(因为是数组赋值,会在结尾自动加'\\0'),sizeof(str2)是指str2的变量大小,str2是一个指针,占4个字节 printf("%d %d\\n", strlen(str2), sizeof(str2));输出结果是 5 4 strlen(str2)是指str2的字符串长度,但是str2不是数组赋值,...

初学c语言 给指针赋值的一个小问题?
1>d:\\ctest\\c3\\c3.cpp(15): note: 请考虑在格式字符串中使用“%lf”1

相似回答