第1題: 各個數據類型與零值比較 特別是float時
C語言
第2題: 數組做函數形參傳遞是
其本質是指針 而非數組名 其大小sizeof為4
C語言
第3題:各種指針 數組 函數時的定義問題 及分析步驟
C語言
第4題: const修飾不能改變以及對他進行改變
以及對字符串常量進行修改是的段錯誤
#include
void fun(int *p);
void funchar(char *p);
int main()
{
//test1
//const char *p = "aaa";
//*(p+1) = 'A';// [Error] assignment of read-only location '*(p + 1u)'
//printf("%s\\n",p);
/*test2
char *p = "aaa";//他是存放在代碼區的
*(p+1) = 'A';10 12//[Warning] deprecated(反對) conversion from string constant to 'char*' [-Wwrite-strings]
printf("%s\\n",p);//可以運行編譯但是直接閃退
*/
/*test3 該測試在Windows下編譯結果還是5 在linux下gcc編譯器結果為6
const int a = 5;
fun((int *)&a);
printf("%d\\n",a);
*/
/*test4*/
const char *p = "aaa";//他是存放在代碼區的
//funchar((char**)&p);二級指針
//funchar((char*)&p);兩個結果都是 Segmentation fault (core dumped)
printf("%s\\n",p);//可以運行編譯但是直接閃退
return 0;
}
void funchar(char *p)
{
*(p+1) = 'A';
}
void fun(int *p)
{
*p = 6;
}
第5題:c和c++ 中的struct有什麼不同?
【標準答案】
c和c++ 中struct的主要區別
c中的struct不可以含有成員函數,而c++ 中的struct可以。
c++ 中struct和class的主要區別在於默認的存取權限不同,
struct默認為public ,而class默認為private
第6題:關於子函數調用maollc 主函數free問題研究
本質就是 函數形參復值的是存儲空間的值 而非地址。
題目
void getmemory(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;
}
會出現什麼問題?
【標準答案】
程序崩潰,getmemory中的malloc 不能返回
動態內存,free ()對str操作很危險。
C語言
#include
void getmemory(char *p)
{
printf("%p\\n",p);
//printf("%s\\n",*p);//*p就表示字符了......format 『%s』 expects argument of type 『char *』,
//p=(char *)malloc(100);//在這裡申請
//strcpy(p,「hello world」);
}
int main( )
{
char *str = "aaaaa";
char *str1 = NULL;//表示str1存儲的是null,
printf("%p\\n",str1);
getmemory(str1);//則傳遞過去 則p存儲的也是null //再進行malloc則表示&p形參的這個地址空間中存儲的是malloc返回回來的地址。然後子函數結束 p指針釋放內存 malloc地址丟失 。
//printf(「%s/n」,str);
//free(str);
return 0;
}
第7題:沒有結束標誌的字符串數組
題目
char szstr[10];
strcpy(szstr,」0123456789」);
產生什麼結果?為什麼?
【標準答案】
長度不一樣,出現段錯誤。
C語言
第8題: 數組和鍊表的區別?
數組屬於順序存儲的線性表 訪問塊 大小限定
鍊表屬於鏈式存儲的線性表 刪除插入塊 大小無限制
【標準答案】
數組:數據順序存儲,固定大小;
鍊表:數據可以隨機存儲,大小可動態改變
第9題:
void main()
{
char aa[10];
printf(「%d」,strlen(aa));
}
會出現什麼問題?列印結果是是多少?
strlen是以』\\0』為結束標誌的計數函數
sizeof就是與定義的數據類型有關的
【標準答案】
sizeof()和初不初始化,沒有關係,
strlen()和初始化有關,列印結果值未知。
第10題 結構體內存對齊問題
給定結構struct A
{
char t:4; ——————1
char k:4; ——————1
unsigned short i:8; ——————2
unsigned long m; ——————4
}; 問sizeof(A) = ?
【標準答案】8
struct name1{
char str; ——————2//內存對齊
short x; ——————2
int num; ——————14
} ;求sizeof(name1)?
【標準答案】8
struct name2{
char str; ——————4
int num; ——————4
short x; ——————2錯的 應該是4
}; 求sizeof(name2)?
【標準答案】12
C語言
加C/C++學習交.流群獲取C語言、C++、Windows高級編程,MFC框架編程、QT框架編程,Linux應用程式開發,Linux內核研究等系統學習路線,更有進階乾貨的直播免費學習權限 ,都是大牛帶飛 讓你少走很多的彎路的 群...號是 546912356