一些程式段分析 1

2021-07-14 04:37:24 字數 801 閱讀 3739

最近刷了不少牛客上的題目,感覺無論對於基礎知識還是程式設計能力都有一點點地提公升。對其中出現頻率比較高的程式段分析題作乙個簡要的總結,以方便以後檢視。

程式段1:

char a = "xyz", b = ;

if (strlen(a) > strlen(b))

printf("a > b\n");

else

printf("a <= b\n");

分析:strlen函式是從第乙個元素開始到遇到第乙個'\0'為止字元的個數。因而strlen(a)==3,由於b中結束符'\0'位置未知,因而strlen(b)>=3,故a<=b。

程式段2:

int main(int argc,char**argv)

; int *ptr = (int*)(&a+1);

printf("%d",*(ptr-1));

}

分析:指標的實質為:位址+步長。指標的型別決定了步長。

定義了陣列a[4],其中a,&a,&a[0]都是陣列的起始位址。但是步長有區別,也就是指向的型別不同。

a等同於a+0等同於&a[0],是指向陣列第乙個元素的指標,步長為指向的元素所占用的位址空間為sizeof(int) 。&a也是指向陣列第乙個元素的指標,但其意義是指向整個陣列的首位址,指向的型別為整個陣列,

所以&a+1相當於a+sizeof(a),指向了4的下一位址。因此,ptr-1指向了元素4。

一些程式段分析 2

程式段3 以下 編譯時會產生錯誤的是哪條語句?include using namespace std struct foo foo int void fun int main void 分析 呼叫無參建構函式即編譯器預設生成的建構函式時,直接定義乙個物件,不能在後面加乙個括號,否則就為函式的定義,會...

一些標籤(1)

一.display顯示 none 隱藏功能 block 除了轉換成塊級元素外,還有顯示元素功能 特點 隱藏之後,不保留位置 二.visibility可見性 visible 物件可視 hidden 物件隱藏 特點 隱藏之後,繼續保留位置 三.overflow溢位 visible 預設值超出顯示 aut...

一些簡單的程式的實現(1)

1.計算4 4矩陣的主副對角線的元素之和 public class szdj int sum djh a system.out.println sum sum private static int djh int a if i j a.length 1 i j return sum 2.產生100個...