1樓:曦夕兮
1.前者是讓這個指標暫時指向記憶體的首地址(無有效資料) 後者是讓記憶體指向一個0佔有的記憶體(可能是0x...的記憶體單元) 應該不一樣吧?
答:一樣的.一般標頭檔案裡會有巨集定義
#define null 0
這樣的話,你明白了吧.
每個程式頭部0號這個單元都是空的,目的就是為了讓空的指標指向這裡,一旦引用了這個單元,程式就知道這個指標是空的.
2 有些函式的引數前加& 表示引用那這個引用和指標的區別在**?
答:看下面函式和說明:
fun1(int &a,int &b)//這裡告訴編譯器,這個函式是傳址的,不是傳值的,所以所引用的引數在函式退出後值會改變
這種情況下:int aa=8,bb=9;fun1(aa,bb);執行結束後,aa=9,bb=8
fun2(int *a,int *b)//這裡沒有引用符號,所以是傳值.先不要激動,說這明明是把地址傳進去了,怎麼會是傳值呢.
聽我慢慢說,如果不信,你可以跟著我做個實驗
int aa[3]=;int bb[3]=;
printf("%ld %d",aa,bb);
fun2(aa,bb);
printf("%d %d",aa,bb);
//怎麼樣,是不是沒有變?
是的,雖然指標傳進函式,能對指標所指向的單元進行改動,但對指標本身卻是改變不了的.
3 (int *p)[5]=是一個定義一個p指標 指向一個一維含5個元素的陣列
我有點弄不明白 這個陣列要有名字吧 比如int a[5]=;int *p=a;這個我能理解 (int *p)[5]=我有點理解不了了 這個p指標指向這個陣列的首地址 但是這個陣列沒有名字 同學說 這個陣列就是p[5] 我還是不怎麼懂
答:這是連續的五個指標變數.分別是p[0]到p[4],這裡說一說p[0]你就應該可以知道其它四個的含義了.
我們再定義一個int *a.
此時,a和p[0]是同一個級別的指標,它們都應該指向一個sizeof(int)大小的記憶體空間.
這個陣列有名字的,它的名字是p
p指向的是連續五個sizeof(int *)大小的記憶體空間.每個空間代表一個指標向量.每個向量又可指向別外的int型空間
2樓:匿名使用者
*代表取值,取地址中的值。
&代表取地址,取變數的地址
c語言中運算子“%”的作用是什麼?
3樓:匿名使用者
c中的模運算子用 % 來表示
其實就是求整數相除的餘數
假設a b為整數
a % b 和
a - ( a / b ) * b 是相等的...
模運算在迴圈陣列中也是很有用的....
關於%號的用法
首先這個操作符的效果(例:a%b)其表示式的結果就是a÷b的餘數。
所以 5÷3得到的餘數就是5%3的值。
5÷3 = 1餘數為2,所以5%3 = 2
4樓:匿名使用者
printf("%-5d",n); 表示輸出整數,左對齊佔5列
5樓:匿名使用者
取餘數,k=5%3,k的值是2。
運算子的作用是什麼
6樓:景田不是百歲山
運算子用於執行程式**運算,會針對一個以上運算元專案來進行運算。例如:2+3,其運算元是2和3,而運算子則是“+”。
在vb2005中運算子大致可以分為5種型別:算術運算子、連線運算子、關係運算子、賦值運算子和邏輯運算子。
運算子優先順序指定了兩個表示式繫結得有多“緊密”。例如,表示式 1 + 5 * 3 的結果是 16 而不是 18 是因為乘號(“*”)的優先順序比加號(“+”)高。必要時可以用括號來強制改變優先順序。
例如:(1 + 5) * 3 的值為 18。如果運算子優先順序相同,則使用從左到右的左聯順序。
7樓:匿名使用者
運算子 顧名思義 用來配合運算量完成運算
比如乘法運算子 * 3*4=12 *的作用就是兩邊的數相乘
8樓:
運算子是告訴編譯程式執行特定算術或邏輯操作的符號。c語言的運算範圍很寬,把除了控制語句和輸入輸出以外的幾乎所有的基本操作都作為運算子處理。主要分為三大類:
算術運算子、 關係運算子與邏輯運算子、按位運算子。除此之外,還有一些用於完成特殊任務的運算子。
9樓:匿名使用者
運算子結合數字完成運算~
c語言運算子中的>>是什麼意思?有啥功能?謝謝。
10樓:蘇嘉愛娛樂
>>是右移運算子,移位運算子的一種:程式設計中,位操作運算子的一種。
c語言中位移位運算子是將資料看成二進位制數,對其進行向左或向右移動若干位的運算。位移位運算子分為左移和右移兩種,均為雙目運算子。第一運算物件是移位物件,第二個運算物件是所移的二進位制位數。
位移位運算子的運算物件、運算規則與結果、結合性如表2-16所示。
移位時,移出的位數全部丟棄,移出的空位補入的數與左移還是右移有關。如果是左移,則規定補入的數全部是0;如果是右移,還與被移位的資料是否帶符號有關。若是不帶符號數,則補入的數全部為0;若是帶符號數,則補入的數全部等於原數的最左端位上的原數(即原符號位)。
擴充套件資料
優先順序:
語言中各運算子的結合性分為兩種,即左結合性(自左至右)和右結合性(自右至左)。例如算術運算子的結合性是自左至右,即先左後右。如有表示式x-y+z 則y 應先與“-”號結合,執行x-y 運算,然後再執行+z 的運算。
這種自左至右的結合 方向就稱為“左結合性”。而自右至左的結合方向稱為“右結合性”。最典型的右結合 性運算子是賦值運算子。
如x=y=z,由於“=”的右結合性,應先執行y=z 再執行x=(y=z)運算。c語言運算子中有不少為右結合性,應注意區別,以避免理解錯誤。
優先順序從上到下依次遞減,最上面具有最高的優先順序,逗號操作符具有最低的優先順序。
11樓:佼丹厙琬
c語言運算子中問號是條件運算子(與冒號組合)。該運算子是c語言中唯一一個三目運算子。
可以通過如下的例項來說明條件運算子的用法:
int a=1, b=3;
int max;
max = a>b ? a : b; // 如果a>b,則max的值為a,否則max的值為b,也即取a與b中的較大者
12樓:
右移運算子“>>”是雙目運算子。其功能是把“>> ”左邊的運算數的各二進位全部右移若干位,“>>”右邊的數指定移動的位數。
例如:設 a=15,
a>>2
表示把000001111右移為00000011(十進位制3)。
應該說明的是,對於有符號數,在右移時,符號位將隨同移動。當為正數時,最高位補0,而為負數時,符號位為1,最高位是補0或是補1 取決於編譯系統的規定。turbo c和很多系統規定為補1。
13樓:匿名使用者
就是移位指令》明顯向右移
據個例子:
15>>4就是0000 1111向右移動四位前邊補零為0000 0000
如果是有符號數即最高位是1前補1例如8f>>4即為1000 1111右移4位是1111 1000
14樓:匿名使用者
>>是右移位運算
比如 a=0x10>>1就是把0x10的2進位制編碼向右移動1位.
1000 0000 移動後變為0100 0000
c語言中的<<和>>左右移運算子有什麼作用,謝謝!
15樓:匿名使用者
左移運算子“
<<”是指將一個數的各個二進位全部左移若干位 左移的過程中右邊則補0,高位溢位捨棄不用。一般情況下【不包括左移高位溢位捨棄的數中不包含1的情況】左移n位後,使該數變成原來數的2的n次方倍。右移相反
<<是什麼運算子
16樓:
《表示位移,
3<<1:二進位制位移00000011位移1位變成00000110,也就變成了6
17樓:魂大人的店鋪
<< >>分別表示迴圈左移 和 環右移
比如一個8 位數 81h,二進位制的就是1000 0001,假設最初的進位位c為0 。帶進位迴圈左移後,最高位移入進位位,此時,進位位c為1,數為0000 0010 。再左移一次,進位位的1移到最低位,此時,進位位為0,數為0000 0101 。
帶進位迴圈右移的話,數為0100 0000,進位位c為1,再移一次,則進位位移入最高位,進位位變成0 ,數為1010 0000
18樓:匿名使用者
插入運算子
cout<<
還有提取運算子
cin>>
C條件運算子,條件運算子和是什麼意思
條件表示式 bai 表示式du1?表示式2 表示式3 條件表示式的zhi執行順序 先dao求解表示式1,若為真則求版解表示式2,此時權表示式2的值就作為整個表示式的值。若表示式1的值為假,則求解表示式3,表示式3的值就是整個條件表示式的值。先計算x y 表示式1 然後 aa 表示式2 x y?bb ...
請簡述布林邏輯運算子的種類和作用
布林邏輯運算子 含義 邏輯與 邏輯或 異或 短路或 短路與 邏輯反 邏輯與賦值 賦值的簡寫形式 邏輯或賦值 賦值的簡寫形式 異或賦值 賦值的簡寫形式 相等 不相等 三元運算子 if then else 布林邏輯運算子 對布林值的運算和它們對整數位的運算一樣。邏輯運算子 的結果表示布林值的相反狀態 t...
c語言運算子中的》是什麼意思?有啥功能?謝謝
是右移運算子,移位運算子的一種 程式設計中,位操作運算子的一種。c語言中位移位運算子是將資料看成二進位制數,對其進行向左或向右移動若干位的運算。位移位運算子分為左移和右移兩種,均為雙目運算子。第一運算物件是移位物件,第二個運算物件是所移的二進位制位數。位移位運算子的運算物件 運算規則與結果 結合性如...