1樓:匿名使用者
a1++返回a1的原值,所以a2[a1++]=++a1;就是a2[1]=2;
strlen(const char*)這個函式是從字串引數位置開始掃描,直到遇到一個null值或者\0位置,在c中null式這麼定義的
typedef null 0
a[0]=0;所以求得的值即c=0;
2樓:匿名使用者
首先告訴你,成熟的程式設計師不會去寫「a2[a1++]=++a1;」這樣的**,因為這樣除了難讀,沒任何好處。
其次,fun(a,b)的呼叫中處理過程是這樣的:
fun內,先取a1值,為1,確定了要給a2[1]賦值,然後計算等式右邊的值「++a1」,是2,再給a2[1]賦值為2,然後執行++a1,即把主程式裡的a變為3。這時b的值是,因第一位元組為0,所以用strlen()求字串長度得到0,也就是c為0。
估計你把a2[a1++]=++a1;一句的執行處理順序弄錯了
3樓:匿名使用者
int fun(int& a1,char*a2)main()
;int c=fun(a,b);
4樓:大衍之
a2[a1++]=++a1;
a1++是後自家的有就是說在這個語句執行之後在自加,++a1,是說這個語句之前就自自加,那麼
就是a2[1]=2;
strlen(a2);
不管p是指向哪兒,strlen(p)會從p指向的地址開始尋找 '\0 ',找到後返回兩者之間的地址長度
5樓:陳學陽
c++的優先順序
優先順序 操作符 結合性
1 :: 左
2 . -> () 左
3 ++ -- ~ ! - + & * () sizeof new delete castname_cast單目操作符 右
4 .* ->* 左
5 * / % 左
6 + - 左
7 << >> 左
8 < <= > >= 左
9 == != 左
10 & 左
11 ^ 左
12 | 左
13 && 左
14 || 左
15 ?: 右
16 = *= /= %= += -= <<= >>= &= |= ^= 右
17 throw 左
18 , 左
如果對您有幫助,請記得采納為滿意答案,謝謝!祝您生活愉快!
c 運算子轉換,C 型別轉換運算子怎麼用
public static explicit operator convertobject byte b 這段 直接寫在了名稱空間下面。這是不行的。你把他放到convertobject這個結構的定義裡面去就可以了就這樣 struct value public static explicit oper...
c語言運算子
夜 晨 a 按位或 00000101 00000010 00000111 結果7b 邏輯或 只要有一個為真,總的值就為真,只有當所有的都為假時,總的式子才為假。兩邊都為真 結果 真 非零數 c 按位與 00000101 00000010 00000000 結果 0 d 邏輯與 只要有一個為假,總的表...
c語言中運算子是取整運算子嗎,C語言中「 」運算子是取整運算子嗎?
終極至尊粉 printf f,f 10.0 3,10.0 3 雙目運算具有左結合性。參與運算量均為整型時,結果也為整型,捨去小數。如果運算量中有一個是實型,則結果為雙精度實型。printf d,d 10 3,10 3 printf f,f 10.0 3,10.0 3 c語言有以下幾種取整方法 1 直...