C運行錯誤跟編譯錯誤的區別
Ⅰ C#中什麼是編譯錯誤,什麼是運行錯誤,它們的區別是什麼
在編譯成中間語言的時候就沒通過,也就是語法有錯誤,簡單的說,
就是"你說的話,人家完全聽不懂,沒法幫你編譯"所以是編譯錯誤,
這個是原則性的錯誤.
而編譯通過了,但是運行時錯誤,說明編程人員對代碼的思想有錯誤,
簡單的說就是"你說的話,人家聽得懂,但是不明白你什麼意識",語無倫次的
讓對方不知道你想做什麼,就運行時錯誤了.
Ⅱ c語言程序運行出錯,編譯沒有錯誤
錯誤有兩點:
1、需要給主函數一個函數返回值的類型,可以為void也可以是int
2、scanf函數的語法錯了,少了&
Ⅲ 什麼是編譯錯誤,什麼是運行錯誤,它們的區別是什麼
編譯錯誤,是編者的錯;運行錯誤,是電腦的錯.
Ⅳ 編譯錯誤和運行時異常怎麼區分
編譯錯誤 一般都是語法錯誤
運行時錯誤一般都是比如數組索引指向空值 4/0 這類錯誤
請參考
Ⅳ Java編譯錯誤和運行錯誤有什麼區別 能否深入淺出
編譯出錯差不多就是語法不對,比如你寫String str = 'str';這么寫語法不對編譯就會出錯。運行出錯是指語法沒問題但是邏輯有問題,比如一個方法傳進一個String類型的變數str,方法體中有類似於str.equals("str");的語句,但是傳進的str是個null,那麼那一句就相當於null.equals("str");這肯定會拋空指針異常。
用手機做例子,編譯出錯就是手機在生產的時候零件不對,那就肯定不能出廠。運行出錯就是手機組裝完出廠了,到手了你沒用來打電話,直接拿來砸核桃了,那手機肯定報廢(NOKIA除外)。
Ⅵ C語言的語法錯誤和邏輯錯誤的區別
語法錯誤: 在編譯的時候會提示你。比如說:for(i=0,i<10,i++)
在編譯的時候會提示你錯誤,要把逗號改成分號。
邏輯錯誤:沒有錯誤提示,能運行,但是達不到自己想要的結果。
Ⅶ 編譯錯誤和運行錯誤,有什麼區別
編譯錯誤簡單的說就是一些語法,在運行前可以檢測到,錯誤比如const (int *)ptr;
運行錯誤比如說輸出一個未指向任何物的指針,就是在運行才能檢測;
Ⅷ c語言,這個能通過編譯,但是運行為什麼有錯誤
scanf需要的是地址
#include<stdio.h>
intmain()
{
floatscore;
chargrade;
scanf("%f",&score);//這里少了一個取地址符
switch((int)score/10)
{
case5:grade='b';break;
default:grade='a';break;
}
printf("%c ",grade);
return0;
}
Ⅸ C語言中的錯誤和警告有什麼區別
錯誤會導致程序無法編譯通過,進而不能運行
而警告是說程序中有些代碼編寫不是非常恰當,不會影響程序編譯,在少數情況下會影響程序運行
一般警告可以忽略,而錯誤是必須要修改的
Ⅹ 求解釋:為什麼有時在運行C語言時,會出現編譯無錯誤,而運行有錯誤呢
main函數中sign,tb沒有賦值,便使用。
palidorm(i);
prime(i);
修改後:
#include <stdio.h>
int parlidorm(int i);
int prime(int i);
int main() {
int m,n,i,t,sign,tb;
scanf("%d%d",&m,&n);
if(m<n){
t=m;
m=n;
n=t;
}
for(i=n;i<=m;i++)
{
sign = parlidorm(i);
tb = prime(i);
if(sign==1&&tb==1)
printf("%d ",i);
}
return 0;
}
int parlidorm(int i)
{
int sign=0,m=i,j,len=0;
char c[30];
while(m){
c[len++]=m%10;
m=m/10;
}
sign=1;
for(j=0;j<len/2&&sign;j++)
{
if(c[j]!=c[len-j-1])
sign=0;
}
return sign;
}
int prime(int i)
{
int j,tb=1;
for(j=2;j<i/2;j++)
{
if(i%j==0)
tb=0;
}
return tb;
}