資料介紹
(一)
1什么是預(yù)編譯,何時(shí)需要預(yù)編譯:
答案:
1、總是使用不經(jīng)常改動(dòng)的大型代碼體。
2、程序由多個(gè)模塊組成,所有模塊都使用一組標(biāo)準(zhǔn)的包含文件和相同的編譯選項(xiàng)。在這種情況下,可以將所有包含文件預(yù)編譯為一個(gè)預(yù)編譯頭。
2 char * const p char const * p const char *p 上述三個(gè)有什么區(qū)別?
答案:
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;
結(jié)果是:0 0 1 1
str1,str2,str3,str4是數(shù)組變量,它們有各自的內(nèi)存空間;而str5,str6,str7,str8是指針,它們指向相同的常量區(qū)域。
4以下代碼中的兩個(gè)sizeof用法有問題嗎?
[C易]
void UpperCase( char str[] ) // 將 str 中的小寫字母轉(zhuǎn)換成大寫字母
{ for( size_t i=0; i 《sizeof(str)/sizeof(str[0]); ++i )
if( ‘a(chǎn)’ 《=str[i] && str[i] 《=‘z’ )
str[i] -= (‘a(chǎn)’-‘A’ );
}
char str[] = “aBcDe”;
cout 《 《 “str字符長(zhǎng)度為: ” 《 《 sizeof(str)/sizeof(str[0]) 《 《 endl;
UpperCase( str );
cout 《 《 str 《 《 endl;
答案:函數(shù)內(nèi)的sizeof有問題。根據(jù)語法,sizeof如用于數(shù)組,只能測(cè)出靜態(tài)數(shù)組的大小,無法檢測(cè)動(dòng)態(tài)分配的或外部數(shù)組大小。函數(shù)外的str是一個(gè)靜態(tài)定義的數(shù)組,因此其大小為6,因?yàn)檫€有‘\0’,函數(shù)內(nèi)的str實(shí)際只是一個(gè)指向字符串的指針,沒有任何額外的與數(shù)組相關(guān)的信息,因此sizeof作用于上只將其當(dāng)指針看,一個(gè)指針為4個(gè)字節(jié),因此返回4。

5一個(gè)32位的機(jī)器,該機(jī)器的指針是多少位
答案:
指針是多少位只要看地址總線的位數(shù)就行了。80386以后的機(jī)子都是32的數(shù)據(jù)總線。所以指針的位數(shù)就是4個(gè)字節(jié)了。
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],執(zhí)行結(jié)果是2,5 。&a+1不是首地址+1,系統(tǒng)會(huì)認(rèn)為加一個(gè)a數(shù)組的偏移,是偏移了一個(gè)數(shù)組的大小(本例是5個(gè)int) int *ptr=(int *)(&a+1); 則ptr實(shí)際是&(a[5]),也就是a+5 原因如下: &a是數(shù)組指針,其類型為 int (*)[5]; 而指針加1要根據(jù)指針類型加上一定的值,不同類型的指針+1之后增加的大小不同 a是長(zhǎng)度為5的int數(shù)組指針,所以要加 5*sizeof(int) 所以ptr實(shí)際是a[5] 但是prt與(&a+1)類型是不一樣的(這點(diǎn)很重要) 所以prt-1只會(huì)減去sizeof(int*)。 a,&a的地址是一樣的,但意思不一樣,a是數(shù)組首地址,也就是a[0]的地址,&a是對(duì)象(數(shù)組)首地址,a+1是數(shù)組下一元素的地址,即a[1],&a+1是下一個(gè)對(duì)象的地址,即a[5]。
掃碼添加小助手
加入工程師交流群
- 嵌入式Linux工程師筆試記錄 -- 2020.8.19(十一)
- 學(xué)軟件嵌入式需要學(xué)c語言嗎,嵌入式軟件工程師需要學(xué)什么?
- 嵌入式軟件工程師修煉開始
- 面試面經(jīng) | 2021大疆嵌入式軟件工程師筆試題B卷
- 嵌入式軟件工程師學(xué)習(xí)路線
- 嵌入式軟件開發(fā)工程師與FPGA開發(fā)工程師
- 嵌入式軟件工程師自學(xué)之路
- 嵌入式軟件工程師學(xué)習(xí)路線
- 嵌入式軟件工程師筆試題資料免費(fèi)下載 28次下載
- 軟件工程師筆試題目(嵌入式方向)資料下載 32次下載
- 嵌入式軟件工程師經(jīng)典筆試試題分享 65次下載
- 自動(dòng)化嵌入式研發(fā)筆試題 0次下載
- 電子硬件工程師筆試題 0次下載
- 電子工程師筆試題_仕蘭微電子 0次下載
- 嵌入式軟件工程師培養(yǎng)步驟 172次下載
- 硬件工程師面試/筆試經(jīng)典 100 題 1.3k次閱讀
- 嵌入式軟件工程師常用的 1.5k次閱讀
- 硬件工程師經(jīng)典面試題詳解 2.2k次閱讀
- 工程師出路:嵌入式不僅僅只是搞搞單片機(jī) 6.4k次閱讀
- 英創(chuàng)信息技術(shù)關(guān)于嵌入式工程師建議 2.2k次閱讀
- 詳細(xì)盤點(diǎn)工程師嵌入式開發(fā)必備工具讓工作事半功倍 6.5k次閱讀
- 嵌入式Linux工程師需要了解的八大開發(fā)知識(shí)點(diǎn) 5.3k次閱讀
- 嵌入式軟件工程師職業(yè)規(guī)劃必知 7.1k次閱讀
- 嵌入式開發(fā)和底層開發(fā)有什么區(qū)別 1.7w次閱讀
- 嵌入式Linux工程師的學(xué)習(xí)發(fā)展步驟,如何測(cè)試工程師之間的區(qū)別 5.1k次閱讀
- 軟件測(cè)試工程師就業(yè)優(yōu)勢(shì)在哪里_如何成為一名優(yōu)秀的軟件工程師 7.4k次閱讀
- 嵌入式軟件工程師和嵌入式硬件工程師有什么區(qū)別 8.3w次閱讀
- 成為一個(gè)正式的嵌入式開發(fā)工程師,需要知道的嵌入式系統(tǒng)開發(fā)7大技巧 1.1w次閱讀
- 了解時(shí)鐘基礎(chǔ)知識(shí)是成為數(shù)字設(shè)計(jì)的軟件工程師最基礎(chǔ)的部分 6.2k次閱讀
- 工程師視角:學(xué)習(xí)嵌入式的十三個(gè)重要法則 1.6k次閱讀
下載排行
本周
- 1冷柜-電氣控制系統(tǒng)講解
- 13.68 MB | 4次下載 | 10 積分
- 2安川A1000變頻器中文版說明書
- 20.16 MB | 3次下載 | 3 積分
- 3直流電路的組成和基本定律
- 1.67 MB | 2次下載 | 免費(fèi)
- 4丹佛斯2800系列變頻器說明書
- 8.00 MB | 1次下載 | 5 積分
- 5PC8011同步開關(guān)型降壓3.5A單節(jié)鋰電池充電管理電路技術(shù)手冊(cè)
- 0.74 MB | 1次下載 | 免費(fèi)
- 6ES7243E+ES8311音頻錄制與播放電路資料
- 0.06 MB | 1次下載 | 5 積分
- 7SDM02 激光測(cè)距模塊產(chǎn)品手冊(cè)
- 0.43 MB | 1次下載 | 免費(fèi)
- 8SDFM 激光測(cè)距模塊模組手冊(cè)
- 0.54 MB | 1次下載 | 免費(fèi)
本月
- 1CH341編程器軟件NeoProgrammer_2.2.0.10
- 20.47 MB | 170次下載 | 1 積分
- 22025智能家居傳感器市場(chǎng)分析及創(chuàng)新應(yīng)用
- 3.11 MB | 43次下載 | 免費(fèi)
- 3RV1126B系列開發(fā)板產(chǎn)品資料
- 4.19 MB | 18次下載 | 免費(fèi)
- 4CH341編程軟件下載
- 2.50 MB | 16次下載 | 5 積分
- 5全志系列-米爾基于T153核心板開發(fā)板 四核異構(gòu)、3路千兆網(wǎng),賦能多元化工業(yè)場(chǎng)景
- 3.05 MB | 12次下載 | 免費(fèi)
- 6【開源】60余套STM32單片機(jī)、嵌入式Linux、物聯(lián)網(wǎng)、人工智能項(xiàng)目案例及入門學(xué)習(xí)資源包
- 10.55 MB | 8次下載 | 免費(fèi)
- 7冷柜-電氣控制系統(tǒng)講解
- 13.68 MB | 4次下載 | 10 積分
- 8特斯拉MODEL S車載充電機(jī)主電路回路原理圖
- 0.81 MB | 4次下載 | 3 積分
總榜
- 1matlab軟件下載入口
- 未知 | 935137次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233094次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191448次下載 | 10 積分
- 5十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183356次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81604次下載 | 10 積分
- 7Keil工具M(jìn)DK-Arm免費(fèi)下載
- 0.02 MB | 73824次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65991次下載 | 10 積分
電子發(fā)燒友App





創(chuàng)作
發(fā)文章
發(fā)帖
提問
發(fā)資料
發(fā)視頻
上傳資料賺積分
評(píng)論