xt9_1
/*p148 5.16字符指针变量*/
#include <stdio.h>
#include <string.h>
main()
{
char s[10],*sp="HELLO";
strcpy(s,sp);
s[0]='h';s[6]='!';
printf("%s\n",s);
}
/*解释运行结果*/
xt9_2
/*z231 24*/
#include <stdio.h>
main()
{
char ch[]="I am student!",*p;
p=ch;
printf("%p,%p\n",p,p+9);
printf("%c,%c\n",*p,*(p+9));
}
/*解释运行结果*/
xt9_3
/*z252 38字符串比较函数的应用*/
#include <stdio.h>
#include <string.h>
main()
{
char a1[5],a2[5],*s1=a1,*s2=a2;
gets(s1);
gets(s2);
if(!strcmp(s1,s2)) printf("*");
else printf("#");
printf("\n%d\n",strlen(strcat(s1,s2)));
}
/*解释运行结果*/
xt9_4
/*指针数组的基本含义*/
#include <stdio.h>
main()
{
char *ps[]={"abcd","ABC"};
printf("%d\n",sizeof(ps));
printf("%s,%s\n",ps[0],ps[1]);
printf("%2c%2c\n",*(*(ps+0)+1),*(*(ps+1)+2));
}
/*解释运行结果*/
xt9_5
/*二维数组的元素表示*/
#include <stdio.h>
main()
{
char ps[][5]={"abcd","ABC","1234"};
printf("%s,%s,%s\n",ps[0],ps[1],ps[2]);
printf("%2c%2c%2c\n",*(ps[0]+1),*(*(ps+1)+2),(*(ps+2))[3]);
}
/*解释运行结果*/
xt9_6
/*指针数组与二维数组的区别*/
#include <stdio.h>
main()
{
char a[][7]={"for","switch","do"},*str[]={"for","switch","do"};
int i;
printf("%d,%d\n",sizeof(a),sizeof(str));
for(i=0;i<3;i++) printf("%s%c",a[i],i<3?' ':'\n');
for(i=0;i<3;i++) printf("%s%c",str[i],i<3?' ':'\n');
}
/*解释运行结果*/
xt9_7
/*指针数组与二维数组的区别*/
#include <stdio.h>
main()
{
char a[][7]={"for ","switch","do "};
char b[][7]={"for","switch","do"};
char *str[]={"for","switch","do"};
int i;
printf("%d,%d,%d\n",sizeof(a),sizeof(b),sizeof(str));
for(i=0;i<3;i++) printf("%s%c",a[i],' ');
printf("\n");
for(i=0;i<3;i++) printf("%s%c",b[i],' ');
printf("\n");
for(i=0;i<3;i++) printf("%s%c",str[i],' ');
printf("\n");
}
/*解释运行结果*/
xt9_8
/*指针数组与二维数组的区别*/
#include <stdio.h>
main()
{
char a[][7]={"for ","switch","do "};
char b[][7]={"for","switch","do"};
char *str[]={"for","switch","do"};
char (*p1)[7];
int i;
p1=a;
for(i=0;i<3;i++) printf("%s%c",p1++,' ');
printf("\n");
p1=b;
for(i=0;i<3;i++) printf("%s%c",p1++,' ');
printf("\n");
}
/*解释运行结果*/
xt9_9
/*数组指针与二维数组的区别*/
#include <stdio.h>
main()
{
char a[][7]={"for","switch","do"},(*p)[7];
int i;
p=a;
for(i=0;i<3;i++)
printf("%s\n",p++);
}
/*解释运行结果*/
xt9_10
#include <stdio.h>
main()
{
union val
{
char cval;
short ival;
}x;
char *p;
p=&x.cval+1;
scanf("%c,%c",&x.cval,p);
printf("%d,%d,%x\n",x.cval,*p,x.ival);
}
xt9_11
/*二级指针变量的含义*/
#include <stdio.h>
main()
{
int *p,**q,i=10;
p=&i;
q=&p;
printf("%d,%d,%d\n",i,*p,**q);
*p*=2;
i/=10;
printf("%d,%d,%d\n",i,*p,**q);
printf("%d\n",p==&i);
printf("%d\n",*p==i);
printf("%d\n",q==&p);
printf("%d,%d\n",*q==p,*q==&i);
printf("%d,%d\n",**q==*p,**q==i);
}
/*解释运行结果*/
xt9_12
/*带参的main函数*/
#include <stdio.h>
main(int argc,char *argv[])
{
int i;
for(i=1;i<argc;i++)
printf("%s%c",argv[i],i<argc-2?' ':'\n');
}
/*步骤:1.编译、运行,产生xx.exe文件;
2.将debug文件夹中的xx.exe文件移入C区;
3.点击开始|运行->打开框中输入cmd|确定;
4.进入DOS,键入cd\回车,输入xx I am student,即可得到程序结果.
解释其结果,并将程序改造使输出为:I am student*/
|