六道指针题!!!!你也来做做!(答案已经给出了,不知道你做的怎么样?)
程序代码:
第一题: main() { char *p,*q; char str[]="Hello,World\n"; q = p = str; p++; printf(q); printf(p); } 运行结果是什么?____________ 第二题: void fun(char* str1, char* str2) { static char buffer[21]; strncpy(buffer, str1, 10); strncat(buffer, str2, 10); str1 = buffer; } main() { char *str1="ABC\n"; char *str2="BCD\n"; fun(str1, str2); printf(str1); printf(str2); } 程序运行结果是__________________ 第三题: main() { short ar[11]={1,2,3,4,5,6,7,8,9,0,11}; short* par=&ar[1]; int i; for(i=0; i<10; i++) { printf("%-5hd%-5hd%-5hd", ar[i], par[i],*(ar+i)); } } 程序运行结果是__________________ 第四题: main() { short *p, *q; short ar[10]={0}; p = q = ar; p++; printf("%5d", p-q); printf("%5d", (char*)p - (char*)q); printf("%5d", sizeof(ar)/sizeof(*ar)); } 假设sizeof(short)==2 程序运行结果是__________________ 第五题: int sub(int a, int b) { return a-b; } main() { typedef int (*SUB)(int, int); SUB psub=sub; printf("%d", psub(10,(10,5))); } 程序运行结果是__________________, 第六题: main() { char* pstrar[3]; int i; for(i=1; i<3; i++) { pstrar[i]=" "; } strcpy(pstrar[1], "你好"); printf(pstrar[1]); } 该程序有错误吗??如果有的话,是哪里错误? 第七题: main() { char *p1,*p2; { char* pchar; char charar[] = "你好,世界"; pchar = "Hello,World!"; p1 = pchar; p2 = charar; } printf(p1); printf(p2); } 说出此程序的错误之处?这是我最近在学习指针的时候遇到了六道题,自己觉得比较有代表性,所以发给大家也做一做!!!!!!!!
再从新好好的理解一下指针!!!!
[ 本帖最后由 我菜119 于 2010-9-25 21:40 编辑 ]