你發現了奇怪的筆記二 C

2023-02-07 04:05:54 字數 1821 閱讀 7952

unsigned cnt = 42;//不是常量表示式

constexpr unsigned sz=42;//常量表示式

int arr[10];//含有10個整數的陣列

int *parr[sz];//含有42個整型指標的陣列

string bad[cnt];//錯誤,cnt不是常量表示式,不報錯的是因為編譯處理,這叫編譯器擴充套件,編譯器自定義的輔助功能

string strs[get_size()]; //當get_size()是constexpr時正確

const unsigned sz=3;

int ial[sz] = ;

int a2=;

int a3[5]=;//等價於

string a4[3]=;//等價於

int a5[2]=;//報錯,初始值過多

char a1=;//列表初始化,沒有空字元

char a2=;//列表初始化,含有顯示的空字元

char a3="c++";//自動新增表示字串的結束空字元

const char a4[6] ="daniel";//錯誤,6個字元,沒有位置存放空字元

int a=;

int a2=a;//錯誤,不能拷貝

a2 = a;//錯誤,不能賦值

int ia=;

auto ia2(ia);//ia2是一個指標,指向ia的首元素

id2 = 42;//錯誤

auto id3(&ia[0]);//顯然也是一個指標型別

decltype(ia) id4=;

int *p=&0x111;-->假設。。

ia4 = p;//錯誤,不能用整型指標給陣列賦值

ia4[4] = i;//正確,把i的值賦給ia4的一個元素

int arr=;

int *beg = begin(arr);//指向首地址的指標

int *last=end(arr);//指向arr尾元素的下一個位置的指標

int ia

int *p=ia;

i=*(p+2);

------------------------

int j=p[1];//等價於ia[3]

int k=p[-2];//等價於ia[0]

方法

解釋strlen(p)

返回p的長度,不記空字元

strcmp(p1,p2)

比較p1和p2的相等性。如果p1==p2,返回0;如果p1>p2返回一個正值;如果p1

strcat(p1,p2)

將p2附加到p1之後,返回p1

strcpy(p1,p2)

將p2拷貝給p1,返回p1

傳入此類函式的指標必須指向以空字元作為結束的陣列

char ca = ;

cout《要使用範圍for語句處理多維陣列,除了最內層迴圈外,其他所有迴圈的控制變數都應該是引用型別

size_t cnt=0;

for(auto &row:ia)

for(auto &col:row)

for(auto &row:ia)

for(auto col:row)

while(int i=0);//錯誤

trycast(exception-declaration)cast(exception-declaration)//.....

js 奇怪的面試題出現了

完全不會這樣的題目,但是可以看出是個演算法題,不能查詢字串是很艱難的一部分 解決方案 字串替換需要 用kmp或者bf演算法 js kpm演算法 獲取部分匹配值表 function inittable str return0 獲得雙份陣列 if partstring.length 2 console....