① c語言中不同數據類型之間可以相加嗎,如下題
可以。進行運算的時候,進行「隱式類型」轉換,把int型轉換成double再做運算的。這個過程是編譯器自己進行的,所以稱為隱式類型轉換。
② c語言中指針變數可以相加嗎其含義是什麼
指針變數是有加減運算的,但是要注意以下幾點:
1.指針變數中存放的是地址值,也就是一個數字地址,例如某指針變數中的值是0x20000000,表示表示此指針變數存放的是內存中位於0x20000000地方的內存地址。指針變數可以加減,但是只能與整型數據加減,此時加減的含義並不是其地址值進行了加減,也就是說如果指針變數p的值是0x20000000,那麼p=p+2;的值並不是0x20000002,並不是地址值的簡單相加,那麼地址值加減多少是與指針指向的數據類型相關聯的,如果在32位的操作系統上,p是指向整型數據的指針變數,那麼p=p+2之後,p的地址值變成0x20000008,也就說實際上地址值加了多少呢:sizeof(int)*2這么多。說明白點,我們加減的數字是以指針指向的數據類型為量度的,P+2表示p在內存中前移兩個int的距離,如果p不是int類型,而是其他類型道理也是一樣。同樣指針與整型數據相減也是同樣的道理。
2.指針之間可以相減,但不可以相加:兩個同一類型的指針變數是可以相減的,他們的意義表示兩個指針指向的內存位置之間相隔多少個元素(注意是元素,並不是位元組數),例如對於int類型的指針p和p1. p1-p的意義表示他們之間相隔多少個int類型的元素。同樣對於其他類型的指針變數之間相減的意義也是一樣。 指針變數的自加和自減實際上是與整數1的加減運算。
3.指針之間可以比較大小。但是同樣也限於兩個相同類型的指針變數,不同類型的指針變數之間比較大小沒有任何意義。指針之間的大小比較的意義,表示在內存中他們指向的位置的高低關系。
③ 各位大神 小弟初來咋到 想請教個問題: 在C語言里,float類型的量和int類型的量運算時,這個表達式值的數
float類型的量和int類型的量運算時,這個表達式值的數據是什麼啊,是float。兩個float量運算,表達式值的數據類型是float類型,兩個字元型數據運算呢,表達式值的數據類型是字元型。總之,兩個相同類型數據運算結果仍為那個類型,不同類型的數據運算結果為兩個數據類型中精度高的那個數據類型。
④ C語言中一個float數和一個int數相加,結果是float型還是int型
結果是float
轉換的順序是
char,short->int->unsigned int->long->unsigned long ->float->double->long double
⑤ c語言結構變數相加
感覺1樓說的有點道理:
我在說點:
scanf("%d %d %d %d %d",&a[i].sco1,&a[i].sco2,&a[i].sco3,&a[i].sco4,&a[i].sco5);
你定義的是指針
*sco1,*sco2,*sco3,*sco4,*sco5;
怎麼可以這樣賦值 這是指針
定義的時候定義為變數吧
⑥ c語言中有沒有辦法讓幾個整型變數同時都增加一個值,比如5和6同時都加2變成7和8。。
如果是一組數都需要類似自加,可以存成數組。
然後在需要的時候,
使用一個循環來依次自加。
⑦ 兩個相同類型的指針變數可以做相加減運算嗎
應該選擇C。A選項兩個同類型的指針間可以比較大小,比較原則應該是按照實際內存的高低位比較的。B選項賦值,這個當然是可以的了。D選項兩個相同指針變數相減可以獲得在之間相隔的同類型元素個數(在某個類型的數組中的應用)。C選項是不可以的,因為兩個指針相加什麼都得不到,所以規定不允許相加。
⑧ C語言2個變數求和
你要用來輸出還是咋弄?
如果輸出直接用表達式就可以了
printf("%f,%f,%f,%f",hours1*payrate1,hours2*payrate2,hours3*payrate3,
hours1*payrate1+hours2*payrate2+hours3*payrate3)