整理的C語言指針測試題
C語言是學好C++的基礎,下面的測試題可以很好的幫助我們測試自己掌握C語言的程度。
int x=35;
char str[10];
//問:strlen(str)和sizeof(str)的值分別是多少?
strcpy(str,"char *pstr;
strcpy(pstr,"//上句編譯能通過嗎?運行時有問題嗎?
const char *p1;
char * const p2;
//上面兩句有什么區別嗎?
p1=(const char *)str;
//如果是p1=str;編譯能夠通過嗎?明白為什么要類型轉換?類型轉換的本質是什么?
strcpy(p1,"abc");//編譯能夠通過嗎?
printf("%d",str);//有問題嗎?
pstr=3000;//編譯能過嗎?如果不行,該如何修改以保證編譯通過呢?
long y=(long)pstr;//可以這樣做嗎?
int *p=str;
*p=0x00313200;
printf("%s",str);//會是什么效果?提示0x31對應字符'1',0x32對應字符'2'。
p=3000;//p+1的結果會是多少?
char *pc=new char[100];//上述語句在內存中占據幾個內存塊,怎樣的布局情況?
void test(char **p)
{
*p=new char[100];
}//這個編譯函數有問題嗎?外面要調用這個函數,該怎樣傳遞參數?
//能明白typedef int (*PFUN)(int x,int y)及其作用嗎?
下面的代碼,各自聲明了什么?
void *(*(*fp1)(int))[10];
float *(*(fp2)(int,int,float))(int);
typedef double *(*(*fp3)())[10])();
int (*(*f4())[10])();
上面的這些僅作為測試,實際中應用的不多,主要考量的是指針
int x=35;
char str[10];
//問:strlen(str)和sizeof(str)的值分別是多少?
strcpy(str,"char *pstr;
strcpy(pstr,"//上句編譯能通過嗎?運行時有問題嗎?
const char *p1;
char * const p2;
//上面兩句有什么區別嗎?
p1=(const char *)str;
//如果是p1=str;編譯能夠通過嗎?明白為什么要類型轉換?類型轉換的本質是什么?
strcpy(p1,"abc");//編譯能夠通過嗎?
printf("%d",str);//有問題嗎?
pstr=3000;//編譯能過嗎?如果不行,該如何修改以保證編譯通過呢?
long y=(long)pstr;//可以這樣做嗎?
int *p=str;
*p=0x00313200;
printf("%s",str);//會是什么效果?提示0x31對應字符'1',0x32對應字符'2'。
p=3000;//p+1的結果會是多少?
char *pc=new char[100];//上述語句在內存中占據幾個內存塊,怎樣的布局情況?
void test(char **p)
{
*p=new char[100];
}//這個編譯函數有問題嗎?外面要調用這個函數,該怎樣傳遞參數?
//能明白typedef int (*PFUN)(int x,int y)及其作用嗎?
下面的代碼,各自聲明了什么?
void *(*(*fp1)(int))[10];
float *(*(fp2)(int,int,float))(int);
typedef double *(*(*fp3)())[10])();
int (*(*f4())[10])();
上面的這些僅作為測試,實際中應用的不多,主要考量的是指針
posted on 2009-03-22 12:36 Benjamin 閱讀(773) 評論(0) 編輯 收藏 引用 所屬分類: C/C++