您好,登錄后才能下訂單哦!
*答案在末尾!
1、寫出bool、float、指針變量與“零值”比較的if語句;
2、在linux32位操作系統下,計算sizeof的值;
char str[] = “heoll”;
char* p = str;
int n;
void fun(int arr[])
{}
void* ptr = malloc(168);
sizeof(str);sizeof(p);sizeof(n);sizeof(arr);sizeof(ptr);
3、給出下列的定義
a、一個有10個指針的數組,該指針的是指向一個整型的;
b、一個指向有10個整型數組的指針;
c、一個指向函數的指針,該函數有一個整數參數并返回整型;
d、一個有10個指針的數組,指針指向一個函數,該函數有一個整型參數并返回整型;
4、以下代碼有什么問題?
int main()
{
char a;
char* str = &a;
strcpy(str,“hello”);
printf(str);
return 0;
}
5、以下代碼有什么問題?
str = “aaa”;
printf("%s\n",str);
str[0] = 'A';
printf("%s\n",str);
6、C/C++中的struct有什么不同?
7、以下代碼有什么問題?
void getmetmemory(char *p)
{
p = (char*)malloc(100);
strcpy(p,"hello world");
}
int main()
{
char* str = NULL;
getmemory(str);
printf("%s\n"str);
free(str);
return 0;
}
8、以下代碼會產生什么結果,為什么?
char str[10];
strcpy(str."0123456789");
9、volatile關鍵字的作用;
/*************************************************************
答案
/*************************************************************
1、一般規范的:
bool:if(falg) if(!flag)
float:const float EPS = 0.000001; if((x >= -EPS )&&(x <= EPS))
指針:if(p == NULL) if(p != NULL)
2、6、4、4、4、4;
3、int* a[10]; int(*a)[10]; int (*a)(int); int (*a[10])(int);
4、沒有為str分配內存空間,將一個字符串拷貝到一個字符變量指針所指地址。可以出預期結果
但是越界進行讀寫導致程序崩潰。
5、“aaa”是字符串常量,str是指針,指向這個字符串常量,所以聲明str的時候就有問題了。
又const char* str = “aaa”;是常量對str[0]的賦值操作是不合法的。
6、重要區別是C中struct不可以包含成員函數,而在C++中它就是一個類只是默認是public的罷了。
7、p傳給getmemory函數的是p的一個副本,在函數體為p開辟了空間超了函數體p還給還給操作系統了,
p所指向的內存空間沒有釋放導致內存泄漏。
8、str越界寫入數據,會導致段錯誤。
9、一個定義為volatile的變量表示該變量會經常被改變。多用于下面三個地方
(1)、中斷服務程序中修改的供其它程序檢測的變量需要加volatile;
(2)、多任務環境下各任務間共享的標志應該加volatile;
(3)、存儲器映射的硬件寄存器通常也要加volatile說明,因為每次對它的讀寫都可能由不同意義;
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。