資料介紹
(一)
1什么是預編譯,何時需要預編譯:
答案:
1、總是使用不經常改動的大型代碼體。
2、程序由多個模塊組成,所有模塊都使用一組標準的包含文件和相同的編譯選項。在這種情況下,可以將所有包含文件預編譯為一個預編譯頭。
2 char * const p char const * p const char *p 上述三個有什么區別?
答案:
char * const p; //常量指針,p的值不可以修改
char const * p;//指向常量的指針,指向的常量值不可以改 const char *p; //和char const *p
3
char str1[] = “abc”;
char str2[] = “abc”;
const char str3[] = “abc”;
const char str4[] = “abc”;
const char *str5 = “abc”;
const char *str6 = “abc”;
char *str7 = “abc”;
char *str8 = “abc”;
cout 《 《 ( str1 == str2 ) 《 《 endl;
cout 《 《 ( str3 == str4 ) 《 《 endl;
cout 《 《 ( str5 == str6 ) 《 《 endl;
out 《 《 ( str7 == str8 ) 《 《 endl;
結果是:0 0 1 1
str1,str2,str3,str4是數組變量,它們有各自的內存空間;而str5,str6,str7,str8是指針,它們指向相同的常量區域。
4以下代碼中的兩個sizeof用法有問題嗎?
[C易]
void UpperCase( char str[] ) // 將 str 中的小寫字母轉換成大寫字母
{ for( size_t i=0; i 《sizeof(str)/sizeof(str[0]); ++i )
if( ‘a’ 《=str[i] && str[i] 《=‘z’ )
str[i] -= (‘a’-‘A’ );
}
char str[] = “aBcDe”;
cout 《 《 “str字符長度為: ” 《 《 sizeof(str)/sizeof(str[0]) 《 《 endl;
UpperCase( str );
cout 《 《 str 《 《 endl;
答案:函數內的sizeof有問題。根據語法,sizeof如用于數組,只能測出靜態數組的大小,無法檢測動態分配的或外部數組大小。函數外的str是一個靜態定義的數組,因此其大小為6,因為還有‘\0’,函數內的str實際只是一個指向字符串的指針,沒有任何額外的與數組相關的信息,因此sizeof作用于上只將其當指針看,一個指針為4個字節,因此返回4。
5一個32位的機器,該機器的指針是多少位
答案:
指針是多少位只要看地址總線的位數就行了。80386以后的機子都是32的數據總線。所以指針的位數就是4個字節了。
6 main()
{
int a[5]={1,2,3,4,5};
int *ptr=(int *)(&a+1);
printf(“%d,%d”,*(a+1),*(ptr-1));
}
答案:2 5
分析:*(a+1)就是a[1],*(ptr-1)就是a[4],執行結果是2,5 。&a+1不是首地址+1,系統會認為加一個a數組的偏移,是偏移了一個數組的大小(本例是5個int) int *ptr=(int *)(&a+1); 則ptr實際是&(a[5]),也就是a+5 原因如下: &a是數組指針,其類型為 int (*)[5]; 而指針加1要根據指針類型加上一定的值,不同類型的指針+1之后增加的大小不同 a是長度為5的int數組指針,所以要加 5*sizeof(int) 所以ptr實際是a[5] 但是prt與(&a+1)類型是不一樣的(這點很重要) 所以prt-1只會減去sizeof(int*)。 a,&a的地址是一樣的,但意思不一樣,a是數組首地址,也就是a[0]的地址,&a是對象(數組)首地址,a+1是數組下一元素的地址,即a[1],&a+1是下一個對象的地址,即a[5]。
- 嵌入式Linux工程師筆試記錄 -- 2020.8.19(十一)
- 學軟件嵌入式需要學c語言嗎,嵌入式軟件工程師需要學什么?
- 嵌入式軟件工程師修煉開始
- 面試面經 | 2021大疆嵌入式軟件工程師筆試題B卷
- 嵌入式軟件工程師學習路線
- 嵌入式軟件開發工程師與FPGA開發工程師
- 嵌入式軟件工程師自學之路
- 嵌入式軟件工程師學習路線
- 嵌入式軟件工程師筆試題資料免費下載 27次下載
- 軟件工程師筆試題目(嵌入式方向)資料下載 32次下載
- 嵌入式軟件工程師經典筆試試題分享 65次下載
- 自動化嵌入式研發筆試題 0次下載
- 電子硬件工程師筆試題 0次下載
- 電子工程師筆試題_仕蘭微電子 0次下載
- 嵌入式軟件工程師培養步驟 172次下載
- 嵌入式軟件工程師常用的 493次閱讀
- 硬件工程師經典面試題詳解 1130次閱讀
- 工程師出路:嵌入式不僅僅只是搞搞單片機 5084次閱讀
- 英創信息技術關于嵌入式工程師建議 1611次閱讀
- 詳細盤點工程師嵌入式開發必備工具讓工作事半功倍 5570次閱讀
- 嵌入式Linux工程師需要了解的八大開發知識點 4673次閱讀
- 嵌入式軟件工程師職業規劃必知 6346次閱讀
- 嵌入式開發和底層開發有什么區別 1.5w次閱讀
- 嵌入式Linux工程師的學習發展步驟,如何測試工程師之間的區別 4179次閱讀
- 軟件測試工程師就業優勢在哪里_如何成為一名優秀的軟件工程師 6481次閱讀
- 嵌入式軟件工程師和嵌入式硬件工程師有什么區別 7w次閱讀
- 成為一個正式的嵌入式開發工程師,需要知道的嵌入式系統開發7大技巧 1w次閱讀
- 了解時鐘基礎知識是成為數字設計的軟件工程師最基礎的部分 5631次閱讀
- 工程師視角:學習嵌入式的十三個重要法則 1429次閱讀
- 嵌入式工程師分享:學習單片機必備的八大步驟 2710次閱讀
下載排行
本周
- 1TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 2開關電源基礎知識
- 5.73 MB | 6次下載 | 免費
- 3100W短波放大電路圖
- 0.05 MB | 4次下載 | 3 積分
- 4嵌入式linux-聊天程序設計
- 0.60 MB | 3次下載 | 免費
- 5基于FPGA的光纖通信系統的設計與實現
- 0.61 MB | 2次下載 | 免費
- 6基于FPGA的C8051F單片機開發板設計
- 0.70 MB | 2次下載 | 免費
- 751單片機窗簾控制器仿真程序
- 1.93 MB | 2次下載 | 免費
- 8基于51單片機的RGB調色燈程序仿真
- 0.86 MB | 2次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33564次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21548次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6653次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537796次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191185次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183278次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多