小知識積累

2021-07-26 21:36:55 字數 2375 閱讀 8841

1.有關++和printf的應用

printf是從右向左壓棧

printf(「%d,%d\n」,ptr,(++ptr));

先是++ptr

從右至左,所以輸出的兩個值是一樣的

*(ptr++)+=123;

那麼先是*ptr+=123;

然後是ptr++;

2. float a = 1.0f;

(int&)a的作用是將浮點數字址開始的sizeof(int)個位元組當成int型的資料輸出,因此這取決於float型資料在記憶體中的儲存方式而不是經過(int&)a顯示的轉換結果

但是如果是0那麼就是0了

3.

int main()

4.有關運算子優先順序以及位運算和進製轉換

int main()

5.用乙個表示式,判斷乙個數x是否是2的n次方

!(x&(x-1))

6.位運算子的數字交換方法

a=a^b;

b=a^b;

a=a^b;

7.c和c++的關係

1.在c++中呼叫被c編譯器編譯後的函式,為什麼要加extern」c」?

c++語言支援函式過載,c語言不支援函式過載,所以函式被c++編譯後在庫中名字與c語言的不同。假設某個函式的原型為void foo(int x,int y).該函式被c編譯器編譯後在庫中的名字為_foo,而c++編譯器則會產生像_foo_int_int之類的名字

c++提供的externc解決名字匹配問題

2.ifndef/define/endif是用來防止標頭檔案被重複引用的

3.c是一種結構化語言,重點在於演算法和資料結構,而c++重點在於資料,是物件導向的語言。

4.**:編寫乙個函式,實現把c/c++程式**中的注釋去掉,並把結果返回

#include 

#include

#include

#include

#include

void remove_comment(char* buf, size_t size)

if (sq_start == null)

else

sq_start = null;

}break;

case

'\"'://雙引號

if (sq_start || lc_start || bc_start)

if (dq_start == null)

else

dq_start = null;

}break;

case

'/'://斜槓

if (sq_start || dq_start || lc_start || bc_start)

c = *(p + 1);

if (c == '/')

else

if (c == '*')

else

break;

case

'*'://星號

if (sq_start || dq_start || lc_start || bc_start == null)

if (*(p + 1) != '/')

p += 2;

memset(bc_start, ' ', p - bc_start);

bc_start = null;

break;

case

'\n':

if (lc_start == null)

c = *(p - 1);

memset(lc_start, ' ', (c == '\r' ? (p++ - 1) : p++) - lc_start);

lc_start = null;

break;

default:

p++;

break;}}

if (lc_start)

}int main()

n = read(fd, buf, sizeof(buf));

if (n == -1 || n == 0)

remove_comment(buf, n);

*(buf + n) = '\0';

printf(buf);

return

0;}

5.

sizeof計算的是棧中分配的大小,如果sizeof物件而物件有靜態變數那麼是不成立的

注意的是當陣列作為函式的引數的時候那麼他就退化成了指標

注意sizeof和strlen的區別

(1)得出結果的時期不同,乙個是在編譯期乙個是在執行期

(2)接受的引數型別範圍不同,strlen只接受char*並且以』\0』結尾

jsp小知識積累

清除頁面快取 response.setheader pragma no cache response.setheader cache control no cache response.setdateheader expires 0 getoutputstream has already been ...

前端小知識積累

1.常用隱藏編輯框的方法 方法1 nf cus this.blur 方法2 readonly 方法3 disabled 通過控制屬性 id attr 控制是否能編輯 特例 特殊編輯文字 如下拉列表 不可使用以上控制 不可逆的 處理方式 給標籤新增乙個容器,通過控制容器的hide和show實現 如 d...

python小知識積累

1 如何理解一切皆物件的python變數類似c語言的指標引用?id 函式返回物件的唯一識別符號,識別符號是乙個整數。cpython 中id 函式用於獲取物件的記憶體位址。在python中,一切都是物件,所有變數都是對某個物件的引用 有點像指標 記憶體管理自動進行 類似c 智慧型指標 為了高效利用記憶...