下面有幾個簡單測試將能發現你對C語言的掌握情況。
int x=35;
char str[10];
//問:strlen(str)和sizeof(str)的值分別是多少?
strcpy(str,"www.it315.org"/*共13個字母*/);
//問:此時x和strlen(str)的值分別是多少?
str="it315.org";//編譯能通過嗎?
char *pstr;
strcpy(pstr,"http://www.it315.org");
//上句編譯能通過嗎?運行時有問題嗎?
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)及其作用嗎?
摘自:http://blog.csdn.net/zhangxiaoxiang/archive/2006/05/17/742931.aspx