C語言問題
發表時(shí)間:2020-10-19
發布人(rén):融晨科技
浏覽次數:60
- 雙引号(字符串)可以(yǐ)賦值給一個(gè)char類型的(de)變量嗎?
不(bù)行,會提示[Warning] initialization makes integer from pointer without a cast;初始化從指針生成整數而(ér)不(bù)進行強制轉換。
也(yě)就(jiù)是(shì)說(shuō),對于(yú)字符串,其實際上(shàng)是(shì)一個(gè)指針,??? - 定義函數中有打印語句在(zài)進行調用時(shí)怎麽打印出(chū)來(lái)?
直接進行調用即可 - 如何将字符串賦值給變量?
方法1:
char str[]=字符串"
方法2:
定義指針,c語言中j将一個(gè)字符串賦值給一個(gè)變量實際上(shàng)是(shì)将這(zhè)個(gè)字符串的(de)第一個(gè)地(dì / de)址賦值給了(le/liǎo)這(zhè)個(gè)變量,
# include <stdio.h>
int p1(){
char b[] = "ceshi"
}
int test(){
char *str = "ceshi";
printf("%s", str);
return 0;
}
int main(){
p1();
test();
}
-
字符串的(de)長度是(shì)否包括結尾的(de)
\0
?
包括,測試結果如下
-
位運算符
&
按位與運算
|
按位或運算
^
按位異或,異或就(jiù)是(shì)兩個(gè)不(bù)同才爲(wéi / wèi)1,兩個(gè)相同均爲(wéi / wèi)0
~
求反運算, -
運算符的(de)優先級
-
強制類型轉換
如何将兩個(gè)整整型相除的(de)結果轉爲(wéi / wèi)浮點型:
int a,b;
float c;
c = (float) a/b;
整型變量 = 整型+浮點型—> 整型
浮點型變量 = 整型+浮點型—>浮點型
整型變量 = 整型*浮點型—>整型
整型變量 = 整型/浮點型—>整型
浮點型變量 = 整型*浮點型—>浮點型
8. ++i 和(hé / huò) i++ 的(de)區别
int i, j, m, n;
i = 2;
j = 5;
m = i++ /* 先進行m=i的(de)賦值操作,再進行i+1操作*/
n = ++j/*先進行j+1操作,再進行n = j的(de)賦值操作*/
/*
總結:++再前先++
++在(zài)後後++
*/
- 什麽是(shì)解引用?
将取值運算符作用于(yú)一個(gè)地(dì / de)址上(shàng),将一個(gè)地(dì / de)址的(de)值取出(chū)來(lái)成爲(wéi / wèi)解引用
int a[3][4];
*(a+1)/*表示的(de)a[1]
- 什麽是(shì)語法糖?
語法糖(Syntactic sugar),也(yě)譯爲(wéi / wèi)糖衣語法,是(shì)由英國(guó)計算機科學家彼得·約翰·蘭達(Peter J. Landin)發明的(de)一個(gè)術語,指計算機語言中添加的(de)某種語法,這(zhè)種語法對語言的(de)功能并沒有影響,但是(shì)更方便程序員使用。通常來(lái)說(shuō)使用語法糖能夠增加程序的(de)可讀性,從而(ér)減少程序代碼出(chū)錯的(de)機會。
舉個(gè)例子(zǐ):在(zài)C語言裏用a[i]表示*(a+i),用a[i][j]表示*(*(a+i)+j),由此可見語法糖不(bù)是(shì)“現代語言”獨有,這(zhè)種寫法簡潔明了(le/liǎo),容易被人(rén)理解。
- 在(zài)數組中,如果有一個(gè)值被初始化了(le/liǎo),其他(tā)沒有指定初始化的(de)值會默認初始化爲(wéi / wèi)0;
- scanf 無法接受含有空格的(de)函數,隻能用gets()
- 頭函數string.h中,strcat(A,B)是(shì)将B字符串拼接在(zài)A字符串後面。
- 在(zài)字符串中,數字給某一位賦值0代表着将其變成了(le/liǎo)‘\0’,字符串在(zài)打印輸出(chū)時(shí),遇到(dào)第一個(gè)‘\0’就(jiù)會結束打印。
- 二維數組初始化問題:????