static char s1[]= "abcde" ,s2[5]={'m','n','p','q','\0'}; cha
来源:学生作业帮 编辑:神马作文网作业帮 分类:综合作业 时间:2024/11/13 01:14:58
static char s1[]= "abcde" ,s2[5]={'m','n','p','q','\0'}; char * ps=s1;
cout
cout
输出是 ace99
因为数组名也是地址,所以char * ps=s1;是可以的
*ps就是s1[0],*(ps+2)就是s1[2],*(ps+4)就是s1[4],这就可以说清楚为什么前三个是ace了.
那么剩下的99是怎么回事呢?
我们看看表达式*ps+2就是s1[0]+2,也就是‘a’+2,加号两边的操作数一个是char类型,另一个是int类型,这时候系统会自动把char转为int,由于‘a'的ASCII码是97,所以‘a’转为int类型后也就是97,所以表达式‘a’+2的值(别忘了表达式原始的形式是*ps+2)就是99,系统将99按int类弄输出
再问: char * ps=s1;是将S1[]的地址给*ps?那要是将s1[]中的内容给它应该这么写呢?
再答: 如果将s1[]中的内容,应该这样写 char *ps = new char[strlen(s1)];//首先为ps分配足够的存储空间 for(int i=0;i
因为数组名也是地址,所以char * ps=s1;是可以的
*ps就是s1[0],*(ps+2)就是s1[2],*(ps+4)就是s1[4],这就可以说清楚为什么前三个是ace了.
那么剩下的99是怎么回事呢?
我们看看表达式*ps+2就是s1[0]+2,也就是‘a’+2,加号两边的操作数一个是char类型,另一个是int类型,这时候系统会自动把char转为int,由于‘a'的ASCII码是97,所以‘a’转为int类型后也就是97,所以表达式‘a’+2的值(别忘了表达式原始的形式是*ps+2)就是99,系统将99按int类弄输出
再问: char * ps=s1;是将S1[]的地址给*ps?那要是将s1[]中的内容给它应该这么写呢?
再答: 如果将s1[]中的内容,应该这样写 char *ps = new char[strlen(s1)];//首先为ps分配足够的存储空间 for(int i=0;i
main() {char *s1,*s2,m; s1=s2=(char*)malloc(sizeof(char)); *
#include void fun(char *w,int n){char t,*s1,*s2;s1=w;s2=w n-
fun(char *w,int n) { char t,*s1,*s2; s1=w; s2=w+n-1; while(s
char *s1="12345",*s2="1234"; printf("%d\n",strlen(strcpy(s1,
#include main() { char *p="abcde\ofghjik\0"; printf("%d\n",s
下面函数的功能是 a(s1,s2) char s1[],s2[];{while(*s2++=*s1++)}
char p[20]={'a','b','c','d'},q[]="abc",r[]="abcde"; strcat(p
设char*1=“12345”,s2=“1234”;执行语句printf(“%d\n”,strlen(strcpy(s1
mian {char p[20]={'a','b','c','d'},q[]="abc",r[]="abcde"; st
int t;char *s1="abc";char *s2="aabdfg"; t=strcmp(s1,s2); 请问t
已知函数定义如下:ab(char *s1,char*s2) {while(*s2++=*s1++);}函数ab的功能是什
void fun (char *a,char *h,char *p) { int j=0; char *q=a; whi