青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

麒麟子

~~

導(dǎo)航

<2025年9月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

統(tǒng)計(jì)

常用鏈接

留言簿(12)

隨筆分類

隨筆檔案

Friends

WebSites

積分與排名

最新隨筆

最新評(píng)論

閱讀排行榜

評(píng)論排行榜

[導(dǎo)入]各大公司面試題(程序)

有些題寫(xiě)得不完整,答案也不完整.我也不知道原理是什么樣子,所以無(wú)法改.要看的同學(xué)就跳過(guò)去吧.如果有好的建議,可以回帖說(shuō)明.謝謝!

雖然都是基礎(chǔ),卻是比較重要的部分.

一:?jiǎn)柎痤}:
1.-1,2,7,28,,126請(qǐng)問(wèn)28和126中間那個(gè)數(shù)是什么?為什么?
第一題的答案應(yīng)該是4^3-1=63
規(guī)律是n^3-1(當(dāng)n為偶數(shù)0,2,4)
      n^3+1(當(dāng)n為奇數(shù)1,3,5)
答案:63
2.用兩個(gè)棧實(shí)現(xiàn)一個(gè)隊(duì)列的功能?要求給出算法和思路!
設(shè)2個(gè)棧為A,B, 一開(kāi)始均為空.

入隊(duì):
將新元素push入棧A;

出隊(duì):
(1)判斷棧B是否為空;
(2)如果不為空,則將棧A中所有元素依次pop出并push到棧B;
(3)將棧B的棧頂元素pop出;

這樣實(shí)現(xiàn)的隊(duì)列入隊(duì)和出隊(duì)的平攤復(fù)雜度都還是O(1), 比上面的幾種方法要好。

3.在c語(yǔ)言
庫(kù)函數(shù)中將一個(gè)字符轉(zhuǎn)換成整型的函數(shù)是atool()嗎,這個(gè)函數(shù)的原型是什么?
函數(shù)名: atol
功 能: 把字符串轉(zhuǎn)換成長(zhǎng)整型數(shù)
用 法: long atol(const char *nptr);
程序例:
#include <stdlib.h>
#include <stdio.h>
int main(void)
{
long l;
char *str = "98765432";

l = atol(lstr);
printf("string = %s integer = %ld\n", str, l);
return(0);
}
二;簡(jiǎn)答題
1.對(duì)于一個(gè)頻繁使用的短小函數(shù),在C語(yǔ)言中應(yīng)用什么實(shí)現(xiàn),在C++中應(yīng)用什么實(shí)現(xiàn)?
c用宏定義,c++用inline

2.直接鏈接兩個(gè)信令點(diǎn)的一組鏈路稱作什么?
PPP點(diǎn)到點(diǎn)連接
 
3.接入網(wǎng)用的是什么接口?
 
4.voip都用了那些協(xié)議?
 
5.軟件測(cè)試都有那些種類?
黑盒:針對(duì)系統(tǒng)功能的測(cè)試    白合:測(cè)試函數(shù)功能,各函數(shù)接口
 
6.確定模塊的功能和模塊的接口是在軟件設(shè)計(jì)的那個(gè)隊(duì)段完成的?
概要設(shè)計(jì)階段
 
7.enum string
    {
    x1,
    x2,
    x3=10,
    x4,
    x5,
    }x;
   問(wèn)x= 0x801005,0x8010f4  ;
 
8.unsigned char *p1;
    unsigned long *p2;
    p1=(unsigned char *)0x801000;
    p2=(unsigned long *)0x810000;
    請(qǐng)問(wèn)p1+5=  ;
        p2+5=  ;

三.選擇題:
  1.Ethternet鏈接到Internet用到以下那個(gè)協(xié)議?
  A.HDLC;B.ARP;C.UDP;D.TCP;E.ID
  2.屬于網(wǎng)絡(luò)層協(xié)議的是:
  A.TCP;B.IP;C.ICMP;D.X.25
  3.Windows消息調(diào)度機(jī)制是:
  A.指令隊(duì)列;B.指令堆棧;C.消息隊(duì)列;D.消息堆棧;
  4.unsigned short hash(unsigned short key)
    {
      return (key>>)%256
    }
   請(qǐng)問(wèn)hash(16),hash(256)的值分別是:
  A.1.16;B.8.32;C.4.16;D.1.32


四.找錯(cuò)題:
  1.請(qǐng)問(wèn)下面程序有什么錯(cuò)誤?
   int a[60][250][1000],i,j,k;
   for(k=0;k<=1000;k++)
    for(j=0;j<250;j++)
     for(i=0;i<60;i++)
      a[i][j][k]=0;
把循環(huán)語(yǔ)句內(nèi)外換一下
  2.#define Max_CB 500
    void LmiQueryCSmd(Struct MSgCB * pmsg)
     {
     unsigned char ucCmdNum;
     ......
   
     for(ucCmdNum=0;ucCmdNum<Max_CB;ucCmdNum++)
      {
      ......;
      }
死循環(huán)
   3.以下是求一個(gè)數(shù)的平方的程序,請(qǐng)找出錯(cuò)誤:
    #define SQUARE(a)((a)*(a))
    int a=5;
    int b;
    b=SQUARE(a++);
   4.typedef unsigned char BYTE
     int examply_fun(BYTE gt_len; BYTE *gt_code)
      { 
      BYTE *gt_buf;
      gt_buf=(BYTE *)MALLOC(Max_GT_Length);
      ......
      if(gt_len>Max_GT_Length)
        {
        return GT_Length_ERROR; 
        }
        .......
      }
五.問(wèn)答題:
   1.IP Phone的原理是什么?
IPV6
   2.TCP/IP通信建立的過(guò)程怎樣,端口有什么作用?
三次握手,確定是哪個(gè)應(yīng)用程序使用該協(xié)議
   3.1號(hào)信令和7號(hào)信令有什么區(qū)別,我國(guó)某前廣泛使用的是那一種?
   4.列舉5種以上的電話新業(yè)務(wù)?


           下面是微軟亞洲面試題

1.進(jìn)程和線程的差別。
線程是指進(jìn)程內(nèi)的一個(gè)執(zhí)行單元,也是進(jìn)程內(nèi)的可調(diào)度實(shí)體.
與進(jìn)程的區(qū)別:
(1)調(diào)度:線程作為調(diào)度和分配的基本單位,進(jìn)程作為擁有資源的基本單位
(2)并發(fā)性:不僅進(jìn)程之間可以并發(fā)執(zhí)行,同一個(gè)進(jìn)程的多個(gè)線程之間也可并發(fā)執(zhí)行
(3)擁有資源:進(jìn)程是擁有資源的一個(gè)獨(dú)立單位,線程不擁有系統(tǒng)資源,但可以訪問(wèn)隸屬于
進(jìn)程的資源.
(4)系統(tǒng)開(kāi)銷:在創(chuàng)建或撤消進(jìn)程時(shí),由于系統(tǒng)都要為之分配和回收資源,導(dǎo)致系統(tǒng)的開(kāi)銷
明顯大于創(chuàng)建或撤消線程時(shí)的開(kāi)銷。
2.測(cè)試方法
人工測(cè)試:個(gè)人復(fù)查、抽查和會(huì)審
機(jī)器測(cè)試:黑盒測(cè)試和白盒測(cè)試

2.Heap與stack的差別。
Heap是堆,stack是棧。
Stack的空間由操作系統(tǒng)自動(dòng)分配/釋放,Heap上的空間手動(dòng)分配/釋放。
Stack空間有限,Heap是很大的自由存儲(chǔ)區(qū)
C中的malloc函數(shù)分配的內(nèi)存空間即在堆上,C++中對(duì)應(yīng)的是new操作符。
程序在編譯期對(duì)變量和函數(shù)分配內(nèi)存都在棧上進(jìn)行,且程序運(yùn)行過(guò)程中函數(shù)調(diào)用時(shí)參數(shù)的傳
遞也在棧上進(jìn)行
3.Windows下的內(nèi)存是如何管理的?
4.介紹.Net和.Net的安全性。
5.客戶端如何訪問(wèn).Net組件實(shí)現(xiàn)Web Service?
6.C/C++編譯器中虛表是如何完成的?
7.談?wù)凜OM的線程模型。然后討論進(jìn)程內(nèi)/外組件的差別。
8.談?wù)処A32下的分頁(yè)機(jī)制
小頁(yè)(4K)兩級(jí)分頁(yè)模式,大頁(yè)(4M)一級(jí)
9.給兩個(gè)變量,如何找出一個(gè)帶環(huán)單鏈表中是什么地方出現(xiàn)環(huán)的?
一個(gè)遞增一,一個(gè)遞增二,他們指向同一個(gè)接點(diǎn)時(shí)就是環(huán)出現(xiàn)的地方
10.在IA32中一共有多少種辦法從用戶態(tài)跳到內(nèi)核態(tài)?
通過(guò)調(diào)用門(mén),從ring3到ring0,中斷從ring3到ring0,進(jìn)入vm86等等
11.如果只想讓程序有一個(gè)實(shí)例運(yùn)行,不能運(yùn)行兩個(gè)。像winamp一樣,只能開(kāi)一個(gè)窗口,
怎樣實(shí)現(xiàn)?
用內(nèi)存映射或全局原子(互斥變量)、查找窗口句柄..
FindWindow,互斥,寫(xiě)標(biāo)志到文件或注冊(cè)表,共享內(nèi)存。.  
12.如何截取鍵盤(pán)的響應(yīng),讓所有的‘a(chǎn)’變成‘b’?
鍵盤(pán)鉤子SetWindowsHookEx
 13.Apartment在COM中有什么用?為什么要引入?
 14.存儲(chǔ)過(guò)程是什么?有什么用?有什么優(yōu)點(diǎn)?
我的理解就是一堆sql的集合,可以建立非常復(fù)雜的查詢,編譯運(yùn)行,所以運(yùn)行一次后,以
后再運(yùn)行速度比單獨(dú)執(zhí)行SQL快很多
 15.Template有什么特點(diǎn)?什么時(shí)候用?
16.談?wù)刉indows DNA結(jié)構(gòu)的特點(diǎn)和優(yōu)點(diǎn)。



           網(wǎng)絡(luò)編程中設(shè)計(jì)并發(fā)服務(wù)器的問(wèn)題




網(wǎng)絡(luò)編程中設(shè)計(jì)并發(fā)服務(wù)器,使用多進(jìn)程 與 多線程 ,請(qǐng)問(wèn)有什么區(qū)別?
1,進(jìn)程:子進(jìn)程是父進(jìn)程的復(fù)制品。子進(jìn)程獲得父進(jìn)程數(shù)據(jù)空間、堆和棧的復(fù)制品。
2,線程:相對(duì)與進(jìn)程而言,線程是一個(gè)更加接近與執(zhí)行體的概念,它可以與同進(jìn)程的其他
線程共享數(shù)據(jù),但擁有自己的棧空間,擁有獨(dú)立的執(zhí)行序列。
兩者都可以提高程序的并發(fā)度,提高程序運(yùn)行效率和響應(yīng)時(shí)間。
線程和進(jìn)程在使用上各有優(yōu)缺點(diǎn):線程執(zhí)行開(kāi)銷小,但不利于資源管理和保護(hù);而進(jìn)程正
相反。同時(shí),線程適合于在SMP機(jī)器上運(yùn)行,而進(jìn)程則可以跨機(jī)器遷移。



                   思科面試題目
1. 用宏定義寫(xiě)出swap(x,y)
#define swap(x, y)\
x = x + y;\
y = x - y;\
x = x - y;
2.數(shù)組a[N],存放了1至N-1個(gè)數(shù),其中某個(gè)數(shù)重復(fù)一次。寫(xiě)一個(gè)函數(shù),找出被重復(fù)的數(shù)字
.時(shí)間復(fù)雜度必須為o(N)函數(shù)原型:
int do_dup(int a[],int N)
3 一語(yǔ)句實(shí)現(xiàn)x是否為2的若干次冪的判斷
int i = 512;
cout << boolalpha << ((i & (i - 1)) ? false : true) << endl;
4.unsigned int intvert(unsigned int x,int p,int n)實(shí)現(xiàn)對(duì)x的進(jìn)行轉(zhuǎn)換,p為起始轉(zhuǎn)化
位,n為需要轉(zhuǎn)換的長(zhǎng)度,假設(shè)起始點(diǎn)在右邊.如x=0b0001 0001,p=4,n=3轉(zhuǎn)換后x=0b0110 00
01
unsigned int intvert(unsigned int x,int p,int n){
unsigned int _t = 0;
unsigned int _a = 1;
for(int i = 0; i < n; ++i){
_t |= _a;
_a = _a << 1;
}
_t = _t << p;
x ^= _t;
return x;
}


              慧通面試題目:



什么是預(yù)編譯,何時(shí)需要預(yù)編譯:
1、總是使用不經(jīng)常改動(dòng)的大型代碼體。
2、程序由多個(gè)模塊組成,所有模塊都使用一組標(biāo)準(zhǔn)的包含文件和相同的編譯選項(xiàng)。在這
種情況下,可以將所有包含文件預(yù)編譯為一個(gè)預(yù)編譯頭。
char * const p;
char const * p
const char *p

上述三個(gè)有什么區(qū)別?
char * const p; //常量指針,p的值不可以修改
char const * p;//指向常量的指針,指向的常量值不可以改
const char *p; //和char const *p

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;
cout << ( str7 == str8 ) << endl;

結(jié)果是:0 0 1 1
解答:str1,str2,str3,str4是數(shù)組變量,它們有各自的內(nèi)存空間;
而str5,str6,str7,str8是指針,它們指向相同的常量區(qū)域。


3. 以下代碼中的兩個(gè)sizeof用法有問(wèn)題嗎?[C易]
void UpperCase( char str[] ) // 將 str 中的小寫(xiě)字母轉(zhuǎn)換成大寫(xiě)字母
{
    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字符長(zhǎng)度為: " << sizeof(str)/sizeof(str[0]) << endl;
UpperCase( str );
cout << str << endl;

答:函數(shù)內(nèi)的sizeof有問(wèn)題。根據(jù)語(yǔ)法,sizeof如用于數(shù)組,只能測(cè)出靜態(tài)數(shù)組的大小,
無(wú)法檢測(cè)動(dòng)態(tài)分配的或外部數(shù)組大小。函數(shù)外的str是一個(gè)靜態(tài)定義的數(shù)組,因此其大小為
4.函數(shù)內(nèi)的str實(shí)際只是一個(gè)指向字符串的指針,沒(méi)有任何額外的與數(shù)組相關(guān)的信息,因
此sizeof作用于上只將其當(dāng)指針看,一個(gè)指針為4個(gè)字節(jié),因此返回4。

一個(gè)32位的機(jī)器,該機(jī)器的指針是多少位
指針是多少位只要看地址總線的位數(shù)就行了。80386以后的機(jī)子都是32的數(shù)據(jù)總線。所以指
針的位數(shù)就是4個(gè)字節(jié)了。

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ù)組的大?。ū纠?
個(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].


5.請(qǐng)問(wèn)以下代碼有什么問(wèn)題:
int  main()
{
char a;
char *str=&a;
strcpy(str,"hello");
printf(str);
return 0;
}
沒(méi)有為str分配內(nèi)存空間,將會(huì)發(fā)生異常
問(wèn)題出在將一個(gè)字符串復(fù)制進(jìn)一個(gè)字符變量指針?biāo)傅刂?。雖然可以正確輸出結(jié)果,但因
為越界進(jìn)行內(nèi)在讀寫(xiě)而導(dǎo)致程序崩潰。

char* s="AAA";
printf("%s",s);
s[0]='B';
printf("%s",s);
有什么錯(cuò)?
"AAA"是字符串常量。s是指針,指向這個(gè)字符串常量,所以聲明s的時(shí)候就有問(wèn)題。
cosnt char* s="AAA";
然后又因?yàn)槭浅A?,所以?duì)是s[0]的賦值操作是不合法的。
6、寫(xiě)一個(gè)“標(biāo)準(zhǔn)”宏,這個(gè)宏輸入兩個(gè)參數(shù)并返回較小的一個(gè)。
.#define Min(X, Y) ((X)>(Y)?(Y):(X))//結(jié)尾沒(méi)有;
7、嵌入式系統(tǒng)中經(jīng)常要用到無(wú)限循環(huán),你怎么用C編寫(xiě)死循環(huán)。
while(1){}或者for(;;)
8、關(guān)鍵字static的作用是什么?
定義靜態(tài)變量
9、關(guān)鍵字const有什么含意?
表示常量不可以修改的變量。
10、關(guān)鍵字volatile有什么含意?并舉出三個(gè)不同的例子?
提示編譯器對(duì)象的值可能在編譯器未監(jiān)測(cè)到的情況下改變。


int (*s[10])(int) 表示的是什么啊
int (*s[10])(int) 函數(shù)指針數(shù)組,每個(gè)指針指向一個(gè)int func(int param)的函數(shù)。


11.有以下表達(dá)式:
int a=248; b=4;int const c=21;const int *d=&a;
int *const e=&b;int const *f const =&a;
請(qǐng)問(wèn)下列表達(dá)式哪些會(huì)被編譯器禁止?為什么?
*c=32;d=&b;*d=43;e=34;e=&a;f=0x321f;
*c 這是個(gè)什么東東,禁止
*d 說(shuō)了是const, 禁止
e = &a 說(shuō)了是const 禁止
const *f const =&a; 禁止
12.交換兩個(gè)變量的值,不使用第三個(gè)變量。即a=3,b=5,交換之后a=5,b=3;
有兩種解法, 一種用算術(shù)算法, 一種用^(異或)
a = a + b;
b = a - b;
a = a - b;
or
a = a^b;// 只能對(duì)int,char..
b = a^b;
a = a^b;
or
a ^= b ^= a;
13.c和c++中的struct有什么不同?
c和c++中struct的主要區(qū)別是c中的struct不可以含有成員函數(shù),而c++中的struct可以。
c++中struct和class的主要區(qū)別在于默認(rèn)的存取權(quán)限不同,struct默認(rèn)為public,而clas
s默認(rèn)為private
14.#include <stdio.h>
  #include <stdlib.h>
  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 不能返回動(dòng)態(tài)內(nèi)存, free()對(duì)str操作很危險(xiǎn)
15.char szstr[10];
  strcpy(szstr,"0123456789");
  產(chǎn)生什么結(jié)果?為什么?
  長(zhǎng)度不一樣,會(huì)造成非法的OS
16.列舉幾種進(jìn)程的同步機(jī)制,并比較其優(yōu)缺點(diǎn)。
   原子操作
信號(hào)量機(jī)制
   自旋鎖
   管程,會(huì)合,分布式系統(tǒng)

17.進(jìn)程之間通信的途徑
共享存儲(chǔ)系統(tǒng)
消息傳遞系統(tǒng)
管道:以文件系統(tǒng)為基礎(chǔ)
18.進(jìn)程死鎖的原因
資源競(jìng)爭(zhēng)及進(jìn)程推進(jìn)順序非法
19.死鎖的4個(gè)必要條件
互斥、請(qǐng)求保持、不可剝奪、環(huán)路
20.死鎖的處理
鴕鳥(niǎo)策略、預(yù)防策略、避免策略、檢測(cè)與解除死鎖
21.   操作系統(tǒng)中進(jìn)程調(diào)度策略有哪幾種?
FCFS(先來(lái)先服務(wù)),優(yōu)先級(jí),時(shí)間片輪轉(zhuǎn),多級(jí)反饋
22.類的靜態(tài)成員和非靜態(tài)成員有何區(qū)別?
類的靜態(tài)成員每個(gè)類只有一個(gè),非靜態(tài)成員每個(gè)對(duì)象一個(gè)
23.純虛函數(shù)如何定義?使用時(shí)應(yīng)注意什么?
virtual void f()=0;
是接口,子類必須要實(shí)現(xiàn)
24.數(shù)組和鏈表的區(qū)別
數(shù)組:數(shù)據(jù)順序存儲(chǔ),固定大小
連表:數(shù)據(jù)可以隨機(jī)存儲(chǔ),大小可動(dòng)態(tài)改變

25.ISO的七層模型是什么?tcp/udp是屬于哪一層?tcp/udp有何優(yōu)缺點(diǎn)?
應(yīng)用層
表示層
會(huì)話層
運(yùn)輸層
網(wǎng)絡(luò)層
物理鏈路層
物理層
tcp /udp屬于運(yùn)輸層
TCP 服務(wù)提供了數(shù)據(jù)流傳輸、可靠性、有效流控制、全雙工操作和多路復(fù)用技術(shù)等。
與 TCP 不同, UDP 并不提供對(duì) IP 協(xié)議的可靠機(jī)制、流控制以及錯(cuò)誤恢復(fù)功能等。由于
UDP 比較簡(jiǎn)單, UDP 頭包含很少的字節(jié),比 TCP 負(fù)載消耗少。
tcp: 提供穩(wěn)定的傳輸服務(wù),有流量控制,缺點(diǎn)是包頭大,冗余性不好
udp: 不提供穩(wěn)定的服務(wù),包頭小,開(kāi)銷小  


26.(void *)ptr 和 (*(void**))ptr的結(jié)果是否相同?其中ptr為同一個(gè)指針
.(void *)ptr 和 (*(void**))ptr值是相同的
27.int main()
   {
    int x=3;
    printf("%d",x);
    return 1;
  
   }
問(wèn)函數(shù)既然不會(huì)被其它函數(shù)調(diào)用,為什么要返回1?
mian中,c標(biāo)準(zhǔn)認(rèn)為0表示成功,非0表示錯(cuò)誤。具體的值是某中具體出錯(cuò)信息


28,要對(duì)絕對(duì)地址0x100000賦值,我們可以用
(unsigned int*)0x100000 = 1234;
那么要是想讓程序跳轉(zhuǎn)到絕對(duì)地址是0x100000去執(zhí)行,應(yīng)該怎么做?
*((void (*)( ))0x100000 ) ( );
首先要將0x100000強(qiáng)制轉(zhuǎn)換成函數(shù)指針,即:
(void (*)())0x100000
然后再調(diào)用它:
*((void (*)())0x100000)();
用typedef可以看得更直觀些:
typedef void(*)() voidFuncPtr;
*((voidFuncPtr)0x100000)();
29,已知一個(gè)數(shù)組table,用一個(gè)宏定義,求出數(shù)據(jù)的元素個(gè)數(shù)
#define NTBL
#define NTBL (sizeof(table)/sizeof(table[0]))

面試題: 線程與進(jìn)程的區(qū)別和聯(lián)系? 線程是否具有相同的堆棧? dll是否有獨(dú)立的堆棧?

進(jìn)程是死的,只是一些資源的集合,真正的程序執(zhí)行都是線程來(lái)完成的,程序啟動(dòng)的時(shí)候
操作系統(tǒng)就幫你創(chuàng)建了一個(gè)主線程。

每個(gè)線程有自己的堆棧。
DLL中有沒(méi)有獨(dú)立的堆棧,這個(gè)問(wèn)題不好回答,或者說(shuō)這個(gè)問(wèn)題本身是否有問(wèn)題。因?yàn)镈LL
中的代碼是被某些線程所執(zhí)行,只有線程擁有堆棧,如果DLL中的代碼是EXE中的線程所調(diào)
用,那么這個(gè)時(shí)候是不是說(shuō)這個(gè)DLL沒(méi)有自己獨(dú)立的堆棧?如果DLL中的代碼是由DLL自己創(chuàng)
建的線程所執(zhí)行,那么是不是說(shuō)DLL有獨(dú)立的堆棧?

以上講的是堆棧,如果對(duì)于堆來(lái)說(shuō),每個(gè)DLL有自己的堆,所以如果是從DLL中動(dòng)態(tài)分配的
內(nèi)存,最好是從DLL中刪除,如果你從DLL中分配內(nèi)存,然后在EXE中,或者另外一個(gè)DLL中
刪除,很有可能導(dǎo)致程序崩潰


unsigned short A = 10;
printf("~A = %u\n", ~A);

char c=128;
printf("c=%d\n",c);

輸出多少?并分析過(guò)程
第一題,~A =0xfffffff5,int值 為-11,但輸出的是uint。所以輸出4294967285
第二題,c=0x10,輸出的是int,最高位為1,是負(fù)數(shù),所以它的值就是0x00的補(bǔ)碼就是12
30,所以輸出-128。
這兩道題都是在考察二進(jìn)制向int或uint轉(zhuǎn)換時(shí)的最高位處理。

分析下面的程序:
void GetMemory(char **p,int num)
{
    *p=(char *)malloc(num);
   
}       
int main()
{
    char *str=NULL;
   
    GetMemory(&str,100);
   
    strcpy(str,"hello");
   
    free(str);
   
    if(str!=NULL)
    {
        strcpy(str,"world");
    }   
       
    printf("\n str is %s",str);
    getchar();
}   
問(wèn)輸出結(jié)果是什么?希望大家能說(shuō)說(shuō)原因,先謝謝了
輸出str is world。
free 只是釋放的str指向的內(nèi)存空間,它本身的值還是存在的.
所以free之后,有一個(gè)好的習(xí)慣就是將str=NULL.
此時(shí)str指向空間的內(nèi)存已被回收,如果輸出語(yǔ)句之前還存在分配空間的操作的話,這段存儲(chǔ)
空間是可能被重新分配給其他變量的,
盡管這段程序確實(shí)是存在大大的問(wèn)題(上面各位已經(jīng)說(shuō)得很清楚了),但是通常會(huì)打印出
world來(lái)。
這是因?yàn)椋M(jìn)程中的內(nèi)存管理一般不是由操作系統(tǒng)完成的,而是由庫(kù)函數(shù)自己完成的。

當(dāng)你malloc一塊內(nèi)存的時(shí)候,管理庫(kù)向操作系統(tǒng)申請(qǐng)一塊空間(可能會(huì)比你申請(qǐng)的大一些
),然后在這塊空間中記錄一些管理信息(一般是在你申請(qǐng)的內(nèi)存前面一點(diǎn)),并將可用
內(nèi)存的地址返回。但是釋放內(nèi)存的時(shí)候,管理庫(kù)通常都不會(huì)將內(nèi)存還給操作系統(tǒng),因此你
是可以繼續(xù)訪問(wèn)這塊地址的。

char a[10],strlen(a)為什么等于15?運(yùn)行的結(jié)果

#include "stdio.h"
#include "string.h"

void main()
{

char aa[10];
printf("%d",strlen(aa));
}

sizeof()和初不初始化,沒(méi)有關(guān)系;
strlen()和初始化有關(guān)。


char (*str)[20];/*str是一個(gè)數(shù)組指針,即指向數(shù)組的指針.*/
char *str[20];/*str是一個(gè)指針數(shù)組,其元素為指針型數(shù)據(jù).*/

long a=0x801010;
a+5=?
0x801010用二進(jìn)制表示為:“1000 0000 0001 0000 0001 0000”,十進(jìn)制的值為8392720
,再加上5就是8392725.


文章來(lái)源:http://ly-weiwei.blog.163.com/blog/static/7297528320081129389103

posted on 2008-12-29 15:08 麒麟子 閱讀(484) 評(píng)論(0)  編輯 收藏 引用

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            99精品视频网| 久久久视频精品| 亚洲精品中文字幕有码专区| 欧美v日韩v国产v| 亚洲精品视频中文字幕| 91久久精品美女| 欧美久久久久久久久| 国产精品主播| 欧美精品免费在线| 在线视频日韩| 性欧美超级视频| 亚洲国产毛片完整版| 91久久久久久| 国产伦精品一区二区| 久久在线91| 欧美日韩99| 欧美在线观看网址综合| 欧美freesex8一10精品| 亚洲免费在线播放| 久久在线免费观看视频| 中文av一区特黄| 午夜宅男欧美| 日韩午夜电影av| 亚洲欧美一级二级三级| 亚洲激情午夜| 亚洲综合不卡| 亚洲日本va在线观看| 亚洲视频在线免费观看| 亚洲国产成人久久综合一区| 亚洲最新视频在线播放| 韩日精品视频一区| 亚洲视频每日更新| 亚洲国产一区二区三区青草影视| 一区二区动漫| 亚洲黄色尤物视频| 欧美一区午夜精品| 亚洲综合色在线| 欧美成人精品激情在线观看 | 亚洲一区二区网站| 在线看日韩欧美| 午夜精品久久久久久久99黑人| 亚洲美女诱惑| 另类图片综合电影| 久久亚洲一区| 国产日韩欧美视频在线| 亚洲免费成人| 日韩亚洲精品电影| 美女黄毛**国产精品啪啪| 久久久久高清| 国产一级揄自揄精品视频| 一区二区三区精品国产| 日韩亚洲在线| 欧美韩日一区二区| 欧美激情在线狂野欧美精品| 激情五月婷婷综合| 欧美在线视频一区二区三区| 亚洲欧美一区二区精品久久久| 欧美激情精品久久久久久变态 | 亚洲一区二区在线免费观看| 欧美成人精品1314www| 你懂的亚洲视频| 在线精品国产欧美| 久久野战av| 欧美国产精品久久| 91久久精品国产91久久| 噜噜爱69成人精品| 欧美激情网站在线观看| 91久久久久久久久| 欧美精品国产| 亚洲精品乱码久久久久久日本蜜臀| 91久久精品日日躁夜夜躁欧美| 一区二区在线不卡| 久久久久久夜| 欧美激情一区二区久久久| 亚洲国产精品va| 欧美国产第一页| 日韩一区二区久久| 午夜精品成人在线视频| 国产精品色午夜在线观看| 亚洲免费网站| 美女在线一区二区| 亚洲精品视频免费在线观看| 欧美日本中文字幕| 亚洲一区日韩在线| 老牛影视一区二区三区| 亚洲黄色免费电影| 国产精品大全| 欧美在线免费视屏| 欧美激情1区2区| 亚洲欧美久久久| 玉米视频成人免费看| 欧美精品二区| 欧美在线精品免播放器视频| 欧美国产视频日韩| 亚洲欧美激情在线视频| 国产亚洲欧美中文| 欧美国产一区二区三区激情无套| 在线一区亚洲| 欧美777四色影视在线| 亚洲网站在线观看| 精久久久久久久久久久| 欧美视频在线一区| 久久精品国产第一区二区三区最新章节| 欧美国产免费| 欧美一区二区| 一本色道婷婷久久欧美| 狠狠综合久久av一区二区小说| 欧美精品九九| 久久精品国产久精国产一老狼| 99riav久久精品riav| 久久精品国产精品亚洲精品| 日韩午夜激情电影| 国产综合网站| 国产精品毛片在线| 欧美极品一区| 玖玖综合伊人| 欧美一区二区三区视频| 91久久国产综合久久91精品网站| 久久久久久9| 性欧美xxxx大乳国产app| 日韩视频精品在线观看| 亚洲第一黄色网| 国产综合婷婷| 国产日产欧美a一级在线| 欧美视频在线观看 亚洲欧| 裸体丰满少妇做受久久99精品| 午夜天堂精品久久久久 | 久久综合五月天婷婷伊人| 小嫩嫩精品导航| 亚洲性人人天天夜夜摸| 99日韩精品| 99热在这里有精品免费| 亚洲人成毛片在线播放| 亚洲福利小视频| 一区在线播放视频| 黄色精品一二区| 韩日精品中文字幕| 韩国av一区| 一区二区三区亚洲| 黄色资源网久久资源365| 国产一本一道久久香蕉| 国产亚洲日本欧美韩国| 国产人久久人人人人爽| 国产精品一区久久| 国产欧美va欧美不卡在线| 亚洲国产成人高清精品| 欧美激情一区二区三区在线视频| 久久这里有精品15一区二区三区| 久久激五月天综合精品| 久久免费的精品国产v∧| 久久久国产精品亚洲一区| 久久噜噜亚洲综合| 麻豆91精品91久久久的内涵| 免费亚洲电影在线| 亚洲国产精品尤物yw在线观看| 欧美黄色aa电影| 亚洲美女黄网| 亚洲一区二区三区色| 久久er精品视频| 免费永久网站黄欧美| 欧美精品情趣视频| 国产精品久久久99| 国语自产偷拍精品视频偷 | 欧美激情精品久久久久| 欧美日韩一区二区三区四区五区 | 欧美激情国产精品| 欧美视频二区36p| 国产欧美一级| 在线看片成人| 亚洲色无码播放| 欧美在线日韩| 欧美激情中文字幕一区二区| 亚洲精品无人区| 欧美亚洲免费电影| 你懂的视频欧美| 国产精品一区二区你懂得| 黄页网站一区| 亚洲一品av免费观看| 久久久久.com| 99国产精品99久久久久久粉嫩| 亚洲淫性视频| 欧美黄色一区| 国产综合香蕉五月婷在线| 日韩一级免费| 久久影院午夜论| 一区二区三区不卡视频在线观看| 欧美一区二区三区精品| 欧美日本一道本| 红杏aⅴ成人免费视频| 亚洲视频免费在线| 欧美成人一区二区三区在线观看| 中国成人黄色视屏| 女同一区二区| 激情欧美丁香| 久久xxxx精品视频| 99精品国产在热久久| 老牛国产精品一区的观看方式| 国产精品一区一区三区| 亚洲精品久久久久久久久久久久久 | 亚洲一区二区视频|