我是一个初学者,在学习中遇到下面的源代码:
#include <iostream>
using namespace std;
void secret(char* s)
{
while(*s!='\0')
{
if (*s>96&&*s<122)
{
*s=*s+1;
}
else if(*s==122)
{
*s='a';
}
s++;
}
}
void desecret(char* s)
{
while(*s!='\0')
{
if (*s>97&&*s<123)
{
*s=*s-1;
}
else if(*s==97)
{
*s='z';
}
s++;
}
}
int main()
{
char st[]="Tell you a secret!";
cout<<"原始字符串:"<<st<<endl;
secret(st);
cout<<"加密字符串:"<<st<<endl;
desecret(st);
cout<<"解密字符串:"<<st<<endl;
return 0;
}
对此源代码有几个疑问,请高手帮忙解答,先谢过了。
1、函数secret()和desecret()定义时的变量为char*类型,而在主函数中调用时给的变量是char类型,怎么理解?
2、函数secret()和desecret()定义时的变量为char*类型,函数中对变量使用用的确实数字,怎么理解?
3、主函数最后的return 0是什么意思啊?
#include <iostream>
using namespace std;
void secret(char* s)
{
while(*s!='\0')
{
if (*s>96&&*s<122)
{
*s=*s+1;
}
else if(*s==122)
{
*s='a';
}
s++;
}
}
void desecret(char* s)
{
while(*s!='\0')
{
if (*s>97&&*s<123)
{
*s=*s-1;
}
else if(*s==97)
{
*s='z';
}
s++;
}
}
int main()
{
char st[]="Tell you a secret!";
cout<<"原始字符串:"<<st<<endl;
secret(st);
cout<<"加密字符串:"<<st<<endl;
desecret(st);
cout<<"解密字符串:"<<st<<endl;
return 0;
}
对此源代码有几个疑问,请高手帮忙解答,先谢过了。
1、函数secret()和desecret()定义时的变量为char*类型,而在主函数中调用时给的变量是char类型,怎么理解?
2、函数secret()和desecret()定义时的变量为char*类型,函数中对变量使用用的确实数字,怎么理解?
3、主函数最后的return 0是什么意思啊?
2、确实的数字为ASCⅡ码,每一个ASCⅡ码都对应一个字母。比如A的ASCⅡ码为65,a的ASCⅡ码为97.
3、主函数最后的return 0就是返回,退出主函数的意思。
st是数组名,是代表一个地址
*是取这个指针指向地址中的值,用字符与数字比较是比较字符的ASCII码
因为main函数返回值是int类型的,你必须返回一个值,一般是返回0,你返回其他值应该是可以的。如果定义成void main 就不用返回了!可能表达的不清楚,你看书肯定明白了
int main()
{
return 0;//这里是主函数int类型决定的,就是语法问题,没什么实际意义是吗?
}