當前位置:首頁 » 編程語言 » c語言弱類型
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言弱類型

發布時間: 2022-12-24 17:29:51

『壹』 c語言中定義一個變數,不給它賦值。它會有值嗎若有是多少

沒有加static,默認為auto 型,此時,不給初值,變數的初值是隨機的。

如果加了static不給初值,變數的初值是默認的 0。

不能說不賦初值就不行,對於局部變數,不賦初值的話,其實裡面存的是一個隨機的值,誰也不知道是多少。

(1)c語言弱類型擴展閱讀:

在C語言中,如果按存儲佔用空間來分,包括:

整型變數(代碼為int),整型變數包括長整型變數(代碼為longint)以及短整型變數(代碼為shortint),字元型變數(代碼為char),浮點型變數(代碼float)等。

聲明變數時,可以不用聲明就直接賦值來決定變數類型的語言,這類語言變數的聲明通常被稱為弱類型,而如(c++等)必須先聲明,後使用,而且聲明時必須確定變數類型,這種就是嚴格的數據類型。

『貳』 c語言的特點是什麼

首先c語言是一種面向過程的語言。
主要優點就是可以直接和匯編語言交互,因為更接近底層,所以運行速度快。
就語言本身而言最大的優點就是弱類型化,指針啥都能幹,但是最大的問題也是指針,初學者連復雜的指針定義都識別不了,更別說使用了。

『叄』 C語言為什麼是一個 弱 類型的高級語言

弱類型語言指的是一種沒有很強類型概念的語言,如vb,而強類型語言指的是有很強類型概念的語言,如c(雖然c允許類型轉換,但是相對來講比vb要是強類型),弱類型的好處在於程序員不需要過多的著重與類型的轉換,而強類型的好處在於程序可以有條不紊的執行,而且類型錯誤的出現率很低,即使有也很容易發現。
弱類型例子:(語言為vbscript)
var result=5+5; //兩個數字之和
alert(result); //輸出10
var result=5+'5'; //一個數字和一個字元之和
alert(result); //輸出55
因此使用弱類型語言也要格外注意數據類型防止出錯
而c語言相對來講比vb更具有類型概念:
#include <stdio.h>
int main(void) {
int a = 5 + 5; //兩個數字之和
printf("%d", a); //輸出10
in b = 5 + '5'; //一個數字和一個字元之和
printf("%d", b); //輸出106,因為字元'5'被隱式轉換成了相應字元的虛擬鍵值(即101)再和數字5相加
return 0;
};

『肆』 php和C語言的區別

一、指代不同

1、php:即「超文本預處理器」,是一種通用開源腳本語言。

2、C語言:是一門面向過程、抽象化的通用程序設計語言,廣泛應用於底層開發。

二、特點不同

1、php:是常用的網站編程語言。PHP獨特的語法混合了C、Java、Perl以及 PHP 自創的語法。

2、C語言:能以簡易的方式編譯、處理低級存儲器。C語言是僅產生少量的機器語言以及不需要任何運行環境支持便能運行的高效率程序設計語言。


三、優勢不同

1、php:具有較高的數據傳送處理水平和輸出水平,可以廣泛應用在Windows系統及各類Web伺服器中。如果數據量較大,PHP語言還可以拓寬鏈接面,與各種資料庫相連,緩解數據存儲、檢索及維護壓力。

2、C語言:提供了許多低級處理的功能,但仍然保持著跨平台的特性,以一個標准規格寫出的C語言程序可在包括一些類似嵌入式處理器以及超級計算機等作業平台的許多計算機平台上進行編譯。


『伍』 C語言 int和char

C語言是一種弱類型語言,如果使用熟練了你就會知道,類型什麼的都是浮雲,內存才是王道,考慮問題的時候要深入本質才行,關於這個問題從內存來看,如下:
char是字元型,內存中佔用 1 個位元組,取值范圍是-128到127,int類型佔用 4 個位元組,范圍就不說了,肯定是比char要大的多,這兩個都是有符號數。
char和int一般情況下是可以直接做加減運算的,你可以直接把char當成一個int,只不過取值范圍小點;
不同類型的數值在做運算時,以盡量不丟失有效數據為原則,比如char和int相加,系統會自動把char轉換成int,最終結果也是int型;
賦值時如果類型不一樣,要小心,若等號左邊的類型小於右邊的,會產生截斷賦值(特別注意),大於的話就沒問題,不會丟失有效數據。
如你寫的第一句,A-B是int,C是char,比較時會先把char轉換成int,也就是從1個位元組變成4個位元組,肯定不會丟失有效數據,沒問題;
第二句,A+B是int,要賦值給char型C,相當於把4個位元組的信息裝到1個位元組的內存中,這肯定放不下,因此會產生截斷賦值,取A+B結果的最後一個位元組賦值,前面三個位元組則會丟掉,
所以這些寫會有風險(當然編譯肯定是過的,只是警告罷了),這種情況下,如果A+B結果沒超過char取值范圍,也問題,因為不會丟失有效數據,如果超過了的話,結果就不是它應該有的結果了,這是就要小心了,所以一般別這么寫,除非你確定數據不會越界,一旦越界就會截斷賦值(只是結果不對,但程序也不會崩潰的)。

滿意請採納。

『陸』 求C語言練習題答案

二、填空題
1. ___變數__是指在程序運行過程中,值可以發生變化的量。
2.C語言是一種____區分_(區分/不區分)字母大小寫的語言,Password和password在C語言中是兩個___不同__(相同/不同)的標識符。
3.下面的轉義字元分別表示:
』\b』__退格___,』\n』__換行___,』\t』__水平製表___,』\」』 __雙引號字元「"」___
4.下面常量的類型分別為:
1.5E12__浮點型___,1288L _整型____,』a』__字元___,"a"__字元串___
08 __整形___,』\007』__整型___
5. C語言源程序一定要有而且只有一個__主函數___函數,程序執行時也從它開始。
6. 結構化程序設計主要有___順序__、__選擇___和__循環___三種基本結構。
三、判斷題
1. C語言不是一種結構化程序設計語言。(錯)
2. C語言是弱類型語言,為了類型轉換的方便,對類型的要求很不嚴格,在許多情況下不做類型檢查。(對)
3. C語言既具有高級語言的特點,同時也具有部分低級語言的特點。(對)
4. C源程序可以由多個文件組成,每個文件中都可有一個主函數main()。(錯)
5. C程序從main()函數開始執行,因此主函數main()必須放在程序的開頭。(錯)
6. 命名標識符時字元個數不得超過6個。(錯)
7. 對於同一個數據種類型,變數值越大,它所佔內存的位元組數越多。(錯)
8. 定義一個變數時必須指出變數類型,但是不一定必須給變數初始化。(對)
9. ""表示一個空字元串常量,』』表示一個空字元常量。(對)
10. 一個表達式中出現多種數值型數據類型,運算前先進行類型轉換。(對)
11. 浮點數不能作自增或自減運算,只有整型才可作自增或自減運算。(錯)
12. 已知a、b是整型變數,則表達式a=3,2+4,b=6,7+8是一個逗號表達式。(對)
四、問答題
1. 寫出下面表達式的值
(1)12/3*9=36
(2)int i=3,j;
i*=2+5;
i/=j=4;
i+=(j%2);
i、j的最終結果是多少?i=5,j=4
(3)int a=3,b,c;
b=(a++)+(a++)+(a++);
c=(++a)+(++a)+(++a);a、b、c的最終結果是多少?a=9,b=9,c=25

2. 下列表達式是否正確?若正確,表達式的值是什麼?
21/2=10 21/2.0= 10.5 21.0/2=10.5 21%2=1 21.0%2 21%2.0 18%15=3 15%18=15 3%15=3
五、編程題
編寫程序,在屏幕上輸出如下信息:
===================
= I am a student. =
===================
#include"stdio.h「
void main()
{
printf("= I am a student. =");
}

『柒』 c語言是強類型還是弱類型,有定論嗎

強制定義就手把以前定義好的數據類型強制轉換為另一種類型,正常情況下我們是定義一種數據類型,如chari,當我們要把它變為int時,就要用(int)i了。強制轉換就是我們可以把我們以前定義好的數據類型轉換為我們要用的令一種類型!

『捌』 c語言 unsigned int

unsigned
int類型相加的情況。
沒有強制轉換。
UINT+UINT
INT+INT
UINT+INT
對於加法器(CPU內部)
是完全相同的。Computer的設計者非常巧妙的統一了他們:
使用反碼代替負數。
(32位INT情況下)
-1

0xFFFFFFF
是物理等價的。
-2

0xFFFFFFE
是物理等價的。
(-1)+(-2)
加法器回答是
0xFFFFFFF
+
0xFFFFFFE
=
0xFFFFFFFD
和(-3)是物理等價的。
所以關鍵是結果是什麼類型,而不是2個輸入是什麼類型。
加法減法都沒有問題。但是比較大小必須注意要同類。要看編譯器了。

『玖』 int main() 與int main(void) 的區別是啥

沒有本質上的區別。
void main() 這么定義只是說明main函數沒有返回值。
int main(void)和int main()是一樣的,括弧里沒有東西就相當於void,只是說明main函數有一個int類型的返回值。
C語言的規范裡面要求main函數需要返回一個int類型的返回值來告訴操作系統這個程序是執行正確還是執行錯誤。執行正確返回0,執行錯誤返回非0。但是目前操作系統都不去判斷這個返回值,所以你寫成void main()還是int main()其實是一樣的,沒有什麼區別。不過既然有規范,還是推薦寫成int main()這種形式。
對於C和C++來說還有一點區別。C++加強了C的一些檢查,我們知道C語言是弱類型的語言,編譯檢查沒有那麼嚴格。C++其實也是弱類型的語言(相對於java、c#這些高級語言),但是比C的檢查稍微嚴格了一些。
希望回答對你有幫助。