⑴ c語言指針。char *p【4】和char (*p)【4】的區別
char *p[4]是指針數組,代表一個有4個元素的數組p,數組中的每個元素都是一個char*型的指針;
char (*p)[4]是數組指針,代表一個指針*p,它指向一個存有4個char型元素的數組。
⑵ c語言中!4是什麼意思
!4就是0,只要是非0的數,取非(!)的結果都是0。
C語言運算符:
強制類型表達式4級
(type-name)cast-expression,強製表達式成為type-name指定的類型。
乘法表達式5級
「*」乘法運算符;「/」除法運算符;「%」取余運算符。
加法運算符6級
「+」加法運算符;「-」減法運算符。
移位運算符7級
<< 左移運算符;>> 右移運算符。
關系運算符8級
<、<=、>、>=關系運算符。
相等運算符9級
「==」等於運算符;「!=」不等於運算符。
位與運算符10級
「 & 」按位與運算符
(2)c語言的4和4的區別擴展閱讀
C語言中各運算符的結合性分為兩種,即左結合性(自左至右)和右結合性(自右至左)。例如算術運算符的結合性是自左至右,即先左後右。如有表達式x-y+z 則y 應先與「-」號結合,執行x-y 運算,然後再執行+z 的運算。這種自左至右的結合 方向就稱為「左結合性」。
而自右至左的結合方向稱為「右結合性」。最典型的右結合 性運算符是賦值運算符。如x=y=z,由於「=」的右結合性,應先執行y=z 再執行x=(y=z)運算。C語言運算符中有不少為右結合性,應注意區別,以避免理解錯誤。
⑶ c語言中%c和%4c有什麼區別
%mc 前面的 m為整形數字(此問題中 前者是1 後者是4)
m的意義在於 列印時 默認分配給這個字元 幾個字元位置 (當然 前者是1個 後者是4個)
因為字元本來 就佔有 一個位置 所以 %c 分配給字元一個列印為 是剛占滿的
但是 %4c 由於 字元本身只佔有 一個位置 所以還空下三個位置 (這就要用空格來填充了)
至於 從哪邊 填充 c語言默認是 右對齊的 所以 在右邊(指的是這四個位置的最右邊 ,並非屏幕最右邊, 屏幕默認是從右往左輸出的。。。)列印出字元之後 會 順勢 輸出三個空格來填充,
至於 如果 想 讓字元靠左對齊 那麼 在%mc m 前面加個負號就可以啦 這樣 %-4c 就是靠左對齊啦
就是這么個意思啦
希望有幫助
⑷ C語言中 int*p[4] 和 int(*p)[4]的區別是什麼
int*p[4]是指針的數組,也就是說它是一個數組,數組里存的是一個個的指針
int(*p)[4]是數組的指針,也就是說它是一個指針,指向的是一個數組。指針指向的類型會影響到指針加減運算時地址的位移。比如說有一個數組 int a[4],加上取址運算符 &a,這個表達式的類型就是指向數組的指針,可以這樣賦值 p = &a;。一般用於向函數傳遞二維數組的時候使用這種類型,這時還有一種更直觀的寫法
void matrix_sum(int matrix_a[][4], int matrix_b[][4]) {...}
這種寫法和
void matrix_sum(int (*matrix_a)[4], int (*matrix_b)[4]) {...}
是等價的。
⑸ C語言中『4』跟4有什麼區別
沒有什麼大的區別,唯一的區別是編碼不同,ASCII 分別為0x34, 0x04。公司新近的程序員總是愛用什麼型來加以區分,認為 char型只能放字元,不能放整形,這是錯誤的。
⑹ C語言中 int*p[4] 和 int(*p)[4]的區別
一、結合性不同:
前者是指針數組,為4個int指針的數組,有4個元素;
後者是數組指針,為一個指針,類型為指向包含4個int類型元素的一維數組的指針。
二、含義不同:
int*p[4]是指針的數組,也就是說它是一個數組,數組里存的是一個個的指針。
int(*p)[4]是數組的指針,也就是說它shu是一個指針,指向的是一個數組。
三、寫法不同:
一般用於向函數傳遞二維數組的時候使用這種類型,這時還有一種更直觀的寫法:
void matrix_sum(int matrix_a[][4],int matrix_b[][4]) {...}
這種寫法和void matrix_sum(int (*matrix_a)[4], int (*matrix_b)[4]) {...}是等價的。
(6)c語言的4和4的區別擴展閱讀:
指針數組:如char *str_B[5] 系統至少會分配5個連續的空間用來存儲5個元素,表示str_B是一個5個元素的數組,每個元素是一個指向字元型數據的一個指針。如果定義如下數組:
char a[3][8]={"gain","much","strong"};
char *n[3]={"gain","much","strong"};
他們在內存的存儲方式分別如圖1所示,可見,系統給數組a分配了
3×8的空間,而給n分配的空間則取決於具體字元串的長度。
此外,系統分配給a的空間是連續的,而給n分配的空間則不一定連續。
⑺ c語言中%c和%4c有什麼區別
%c表示按原來的字元長度輸出(就是正常輸出)
%4c也是字元輸入的一種格式,你只要理解這里的4是什麼意思就行了。
4的意思是左補空格右對齊(4>0)
如果是-4的話那就表示右補空格左對齊(-4<0)
也就是說,%mc(m是一個常數)中,如果m>0,那就表示向左補(m-1)個空格,然後將字元輸出
如果m<0,就是表示向左對齊(這就不多說了,因為%c格式每次只能輸出一個字元,所以m<0時,%mc格式與%c格式是等效果的)
⑻ C語言。char a=4與char a='4'的區別。請高手解惑。
char a=4 這樣a等於ascii碼為4的字元,
而 char a='4'讓a等於字元'4'(ascii碼不是4)。
⑼ C語言int (*p)[4]和int *p[4]區別
第一個是指針數組,第二個是數組指針。區別是他是一個指針還是多個指針。
數組指針只是一個指針變數,似乎是C語言里專門用來指向二維數組的,它佔有內存中一個指針的存儲空間。指針數組是多個指針變數,以數組形式存在內存當中,佔有多個指針的存儲空間。
int (*p)[4]就相當於int p[][4],它就是一個二維數組的指針,可以指向一個第二維度為4的二維數組
⑽ C語言中%-4d與%4d的區別
%4d的4是空4位
舉例:
printf("4d%", 2);顯示的結果是逗 XXX2地(X代表空格)
printf("4d%", 20);顯示的結果是逗 XX20地(X代表空格)
printf("3d%", 2);顯示的結果是逗 XX2地(X代表空格)
printf("3d%", 20);顯示的結果是逗 X20地(X代表空格)