c語言a與a的區別
⑴ 在c語言中「a」和『a』的區別是
C語言中沒有String的類型,不過是有String這個概念,C語言的字元串也是char類型存儲。
C語言中"a"表示一個字元串,在內存中存儲為 'a' '\0' 兩個字元,大小為2位元組。
C語言中'a'表示一個字元,在內存中存儲為 'a' 一個字元,大小為1位元組。
擴展知識:
在C語言中可以用char類型的指針來存儲任意長度的字元串!比如:char * myStr="Hello,C!"。
如果你用char型數組來存儲字元串,請注意你的數組的長度要比你將要存儲的字元串長度至少大1.
⑵ C語言中!a和a!的區別
1!=1,翻譯成人話:1不等於1,這是假的,所以該表達式值為0
!1=1,這句是非法的,沒什麼好說的
另外a!沒這種說法。!單目運算是在變數的前面,!a表示非a
⑶ c語言中,a 和a[] 有什麼區別
a[]比a少一維,我具體給你解釋下。
幾個元素可以組成數組,而幾個一維數組可以組成二維數組,如此一直增加維數。
比如說a[0]=2,a[1]=1,a[2]=3,組成一個一維數組,這就是a.但是,你要注意,a不是直接把這些東西都存著的,a只存首地址。
假設定義了一個二維數組a[3][3].這時候a[0],a[1],a[2]就不再是元素了,而代表的是一個有三個元素的一位數組,而此時的a就是一個二維數組。如果感覺這個有點困難沒關系,等學習了指針什麼的久很好理解這個了。
再說說你給的程序,你是不是在疑問為什麼gets()直接給str1 就可以了?還有那個輸出函數,為啥只用給str1就可以?
這得給存儲方式有關,字元串就是字元的二維數組,gets()需要輸入字元串的首地址,這個還算好理解,因為你應該學過了scanf()了,二者差不多,關鍵是為什麼輸出函數直接就寫了str1呢?printf()之前你學的一般都是(printf("%d",a[1]));這種類型的。這里為啥要填一個地址參數呢?這是因為你前面是%s s代表字元串,字元串本身就是二維的,因此,你當然不能只給他一個單獨的元素了,那麼,你給了首地址他如何知道你這個字元串是啥呢?因為字元串都是順序存儲的,更重要的是字元串在結尾處有個標志「/0」,因此,你只要給力他首地址,他就知道從哪裡開始,從哪裡結束了。
純手打,望~~。
⑷ c語言'a'和"a"有什麼區別
1、本質區別
雙引號裡面的是字元串, 而單引號裡面的代表字元。
2、輸出區別
str = 「a」輸出的就是a這個字母;
str = 『a』輸出的測試65
3、底層區別
用單引號引起的一個字元實際上代表一個整數,整數值對應於該字元在編譯器採用的字元集中的序列值。
(4)c語言a與a的區別擴展閱讀:
C 語言中,逗號(,)也可以是運算符,稱為逗號運算符(Comma Operator)。逗號運算符可以把兩個以上(包含兩個)的表達式連接成一個表達式,稱為逗號表達式。其一般形式為:
子表達式1, 子表達式2, ..., 子表達式n
例如:a + b, c = b, c++
逗號運算符的優先順序是所有運算符中級別最低的,通常配合 for 循環使用。逗號表達式最右邊的子表達式的值即為逗號表達式的值。上例中,c++ 的值(c 自增之前的值)即為該表達式的值。
逗號運算符保證左邊的子表達式運算結束後才進行右邊的子表達式的運算。也就是說,逗號運算符是一個序列點,其左邊所有副作用都結束後,才對其右邊的子表達式進行運算。因此,上例中,c 得到 b 的值後,才進行自增運算。
⑸ C語言中「a」與`a`有什麼區別
這要看a是什麼了,如果a是指針變數,那麼a代表這個指針變數,*a代表這個指針變數所指向的目標。如果不是指針那麼*a不是正確的寫法。
⑹ C語言中'a'和a有什麼區別
引號引起來說明是字元。
不因起來說明是變數名。
printf("%c",a);
printf("%d",'a');
比較兩者的區別。
上面是a的變數內容。
而下面是a的ASCII碼,97.
⑺ c語言中(a)和a有什麼區別
一般是沒有區別的,尤其是你把他單獨提取出來。C語言中()只有兩種作用,一個是作為函數或強制轉化的標志,如果(a)前面是個函數名的話,那就表示a是作為那個函數的實參。另一個是作為運算符,能提高裡面的運算優先順序,把裡面的表達式優先算出來,在這里,單獨的(a)與a沒有區別。
⑻ c語言字母A和字元A有什麼區別
c語言字母A和字元A區別:
性質上:字母A是一個標識符,它可以作為變數名、函數名;而字元A是一個值,它是值為『A』的字元常量,它的ASCII碼為97。
用法上:字母A作為變數可以被賦值,具體值需要和變數類型一致,字母A還可以作為函數名;而字元A是一個常量,不可以被賦值,但是可以把它賦值給其他字元型變數。
⑼ C語言中'a'和"a"有什麼區別
1、本質區別
雙引號裡面的是字元串, 而單引號裡面的代表字元。
2、輸出區別
str = 「a」輸出的就是a這個字母;
str = 『a』輸出的測試65
3、底層區別
用單引號引起的一個字元實際上代表一個整數,整數值對應於該字元在編譯器採用的字元集中的序列值。
(9)c語言a與a的區別擴展閱讀:
C語言是一個有結構化程序設計、具有變數作用域(variable scope)以及遞歸功能的過程式語言。
C語言傳遞參數均是以值傳遞(pass by value),另外也可以傳遞指針(a pointer passed by value)。
不同的變數類型可以用結構體(struct)組合在一起。
只有32個保留字(reserved keywords),使變數、函數命名有更多彈性。
部份的變數類型可以轉換,例如整型和字元型變數。
通過指針(pointer),C語言可以容易的對存儲器進行低級控制。
預編譯處理(preprocessor)讓C語言的編譯更具有彈性。