c語言查漏補缺 指標

2021-06-10 10:17:10 字數 1002 閱讀 8829

1,表示式:*p++ ,++和*優先順序相同,結合方向自右向左,因此等價於*(p++)

,也就是先得到p所指向的變數值(*p),再使p=p+1。

注意區別:

*p++:先取得當前p所指向的變數值,再使p指向後乙個變數,相當於a[i++];

*p--:先取得當前p所指向的變數值,再使p指向前乙個變數,相當於a[i--];

*++p:先使p指向後乙個變數,再取得當前p所指向的變數值,相當於a[++i];

*--p:先使p指向後乙個變數,再取得當前p所指向的變數值,相當於a[--i]; 例:

#includeint main()

輸出為:

0 1 2 3 4 5 6 7 8 9

0 1 2 3 4 5 6 7 8 9

2,乙個32位的機器,該機器的指標是多少位?

指標是多少位看的是機器的位址匯流排的位數,80386以後的機子都是32位的資料匯流排,所以指標的位數就是32即4個位元組。

3,下面的程式輸出的是什麼?

#includevoid main()

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

printf("%d,%d\n",*(a+1),*(ptr -1));

}

&a+1不是

首位址加一,而是偏移乙個陣列的大小,上面題目中是偏移5個int。&a是陣列指標,其型別為int(*)[5],而指標加1要跟據指標型別加上一定的值。

故輸出結果為:2,5。

4,「int(*s[10])(int);」表示的什麼?

(1),的優先順序比*高,所以s先與結合,顯然他是個陣列。

(2),*s[10],說明陣列元素的型別是指標。

(3),指標的型別又是int(*)(int),結合指向指標的函式概念去理解。

(4),綜上,他的含義是,定義了乙個含有10個函式指標的陣列。

C語言查漏補缺

char a 2 20 a 1 hello 這是錯誤的。c語言把這語句解釋為乙個指標與另乙個指標之間的 非法的 賦值運算。但是在初始化時,char a 2 20 是允許的。對於字串陣列,可以使用 法1 char strs 2 strs 1 hello 法2 char strs 2 20 strcpy...

c語言基礎查漏補缺

該部分只是用來記錄c語言模糊的知識點 以下寫法錯誤 char c 123 char c1 哦 1.作用 用來計算乙個變數或者乙個常量 一種資料型別所佔的記憶體位元組數。2.基本形式 sizeof 變數 常量 int size sizeof a sizeof 變數 常量 int size sizeof...

DOM查漏補缺

使用getattribute 方法只能獲取屬性的文字內容,比如script或者style就不方便了,因此建議使用屬性的方法來獲取,即elenode.attr這種形式 但是自定義的標籤屬性必須使用getattribute 方法來獲得。屬性的方法會返回undefined 修改class通過屬性名的方法是...