下面**的輸出結果是?
int main()2, 3;int (*ptr)[3] = a;
printf("
%d, %d\n
", (*ptr)[1], (*ptr)[2]);
++ptr;
printf("
%d, %d\n
", (*ptr)[1], (*ptr)[2]);
system("
pause
") ;
return
0 ;}
5, 6
ptr的型別是int(*)[3],那麼*ptr的型別便是int[3],也就是int*(編譯器會將陣列名轉換成指標),所以*ptr相當於指向第乙個元素1的指標,所以ptr[1] = 2, ptr[2] = 3
++ptr相當於將ptr向後移動三個int,也就是12個位元組,所以此時ptr指向元素4,那麼ptr[1] = 5, ptr[2] = 6
下面**輸出什麼?
int i = 3;1. 首先j的值肯定是4,因為無論括弧內部的值是多少,它始終是int型別。int j = sizeof(++i + ++i);
cout << i << endl ;
cout << j << endl ;
2. i的值不是5,因為sizeof雖然是乙個編譯時運算子,但是卻有函式的性質,就是說,它有引數。這裡括弧裡面相當於sizeof的引數。而且i是值傳遞的。所以不會影響到原來的值,i = 3
如果是下面這樣呢?
int i = 3;很顯然,i = 5, j = 10.int j = (++i+ ++i);
cout << i << endl ;
cout << j << endl ;
下面**輸出什麼?
void f1(int *, int);注意,函式f1()和f2()確實能交換p和q,但是要注意,這裡的q是指傳遞,所以不會影響原來的值。void f2(int *, int);
void(*p[2]) ( int *, int);
int main()
void f1( int* p , int q)
void f2( int* p , int q)
輸出 5 5 5 5
幾道關於面試的題目
實現乙個演算法,確定乙個字串的所有字元是否全部相同?最想想到的方法是通過比較該字串的每乙個字元,演算法的時間複雜度為0 n2 次。另一種辦法是可以利用set資料結構來實現,因為在set中不允許存在重複的字元。有乙個有意思的地方是在進行判斷前可以先判斷字串的長度,如果字串的長度大於256,那麼我們可以...
幾道JS閉包題目
function fun n,o 問 三個fun函式是一樣的嗎?答 第乙個fun是具名函式,可通過fun.name得到 fun 即函式名 返回值是乙個物件字面量表示式,屬於乙個新的object 物件字面量裡有乙個叫fun的屬性,該屬性是乙個匿名函式表示式,屬於新建立的函式,所以第乙個和第二個fun函...
常見陣列幾道題目
基礎題目 參 public class test4 統計字元陣列中字母出現次數 printcount chararray public static void printcount char chararray 列印字母和次數 for int i 0,ch 97 i count.length i c...