C 面試之語言基礎(2)

2021-08-20 10:20:44 字數 2087 閱讀 6059

#define swap(x,y) (x)=(x)+(y);(y)=(x)-(y);(x)=(x)-(y);

//巨集定義時引數用括號括起來,且表示式之間不要有空格

#define ntbl(table) (sizeof(table)/sizeof(table[0]))
入隊:將元素壓入棧a

出隊:判斷棧b是否為空

如果不為空,則將棧a中所有元素依次pop出並push到棧b

void

foo(

int x,

int y)

所以要加extern 「c」來解決名字匹配問題

#include

#include

using

namespace std;

intinvert

(char

*str)

return num;

}int

main()

void

fun(

int num,

char

*pval)

}for

(j=0

;j<=i;j++

) pval[j]

=strval[i-j]

; pval[j]

='\0'

;}

追逐方式:

int

do_dup

(int a,

int n)

迴圈,移位相加即可。

c+

=n&15

;n=n>>

4;

void

loopmove

(char

*pstr,

int steps)

乙個類包含指標的話,一般會有析構函式,而且要重寫拷貝構造和賦值運算子,因為預設是位址的拷貝和賦值,對指標來說無意義。

class

string

;

a=

3;b=5;

c=a,b;

d=(a,b)

;

執行之後,c=3,d=5.

int i=3;

int j;

j=sizeof

(++i+

++i)

;print

(「i=

%d,j=

%d」,i,j)

;

不一定,可能會溢位。假設a+b溢位,但是c是負數,a+c後再加b就不一定溢位了。

a+b+c一定等於b+a+c

//bool:if(

!var)

//int:

if(var==0)

//float:

const

float var=

0.000001;if

(x>

-var && x//浮點數不能精確到0,所以需要在乙個範圍內近似看做0

//指標:

if(var==

null

)

(1)

void

fun(

char str[

100]

)

原因:陣列做函式形參,會轉化成指標

(2)

void p=

malloc

(100);

sizeof

(p)//4

(3)

int a[

100]

sizeof

(a)//4100

(4)

char

*p=」aaa」

sizeof

(p)=

?//4

面試基礎語言c

1.c 與c的區別 2.如何讓乙個c 程式執行c的程式且不需要對函式進行名字重整extern c 3.指標與引用的區別 4.c 中間的指標傳遞和引用傳遞 5.形參與實參 6.三種傳遞 7.static 8.靜態變數的初始化 9.const 10.指標與const 11.mutable 12.exte...

C語言基礎 2

1.正數的反碼,補碼都等於原碼 負數的補碼等於反碼加一。例 31的補碼 1 原碼 1001 1111 2 反碼 1110 0000 3 補碼 1110 0001 2.計算機中儲存資料用補碼主要是因為 0這個數的原碼和反碼不唯一,出現了bug,而 0補碼是一致的。3.字串以 0 結尾。字元常量 x 字...

c語言基礎2

陣列 定義 型別說明符 陣列名 常量表示式 例如int a 10 陣列中十個元素位元組位址是連續的,10代表陣列的長度,0 9是陣列的下標 在陣列的位址中,由a 0 到a 9 中位址是從低位址到高位址。求陣列中元素的個數大多使用 sizeof a sizeof a 0 關於陣列位址的問題 a 0 代...