关于C语言指针变量函数调用的问题!!高手进来看一下哈!

#include<stdio.h> void main() { int palindrome(char *string); char a[20]; int q; gets(a); q=palindrome(a); printf("%d",q); } int palindrome(char *string) { int n,i,j,z; char *m; m=string; //* 将数组a的首地址赋给字符数组m *// for(;*string!='\0';string++); //* 因为string代表&a[0],string+1代表&a[1]....,所以有string++ (见图)*// n=string-m; //* string的最终地址减去首地址得出来的数赋给n,n就是我输入的字符的个数 *// for(i=0,j=n-1;i<=j;i++,j--) if(*(string+i)==*(string+j)) //* 就是指针变量所指向的那个字符是否相同,相同就返回1,否则,返回0 *// return z=1; else return z=0; } 为什么无论我输入什么字符串,它的返回值都是0?????????????

第1个回答  2019-06-15
for(;*string!='\0';string++);
//此处将string指向了字符串末尾。
for(i=0,j=n-1;i<=j;i++,j--)
//在循环外面应该将string重新指向字符串开头。
if(*(string+i)==*(string+j))
相似回答
大家正在搜