① c語言中"void add(void)"是什麼意思
C++函數庫中沒有add()這個函數,這個函數是用戶自定義函數,根據這個函數名稱來看,是求和運算的函數,因為沒有返回值,也沒有傳遞參數,所以應該是求幾個全局變數的和,結果也是全局變數。
ADD表示相加的指令(),格式為ADDXF 20H,F;表示將X和20H裡面的值相加,然後放到工作寄存器或者文件寄存器中,其決定與F的值,其中F可以為1和0,為1時表示把相加的結果存入(F)文件寄存器,為0時表示把相加的結果存入(W)工作寄存器中。當然前面的例子中的20H可以是其他的地址值,X一般是工作寄存器W。
(1)c語言voidadd擴展閱讀:
ADD指令完成目的操作數與源操作數相加,將結果存回目標操作數,並根據相加結果設置標志寄存器的CF,PF,AF,ZF,SF,OF
目標操作數可以是寄存器或者存儲器,源操作數可以是立即數,寄存器或者存儲器。但是源操作數和目標操作數不能同時為存儲器。另外,不能對段寄存器進行加法運算(段寄存器不能參加減法,乘法,除法運算)。加法指令的操作數可以是8位,也可以是16位,但是類型要匹配。(如:ADD BX,CH該指令是錯的)。
② c語言中void什麼意思具體怎麼用
void的字面意思是「無類型」,void *則為「無類型指針」,void *可以指向任何類型的數據。void只有「注釋」和限製程序的作用。void的作用在於對函數返回的限定和對函數參數的限定。
例如:float *p1;int *p2;p1 = p2;
其中p1 = p2語句會編譯出錯,提示「'=' : cannot convert from 'int *' to 'float *'」,必須改為:p1 = (float *)p2;
而void *則不同,任何類型的指針都可以直接賦值給它,無需進行強制類型轉換:
void *p1;int *p2;p1 = p2;
(2)c語言voidadd擴展閱讀
void類型在c開發中常見的用法有2種:
1、作為函數的返回值,如void add(int x,int y); 表示該函數吳返回類型,不需要返回值。
2、使用void*指針來使用,比如作為函數的參數類型,如: int max(void* param); -->此時的void*表示可以使用任何類型的參數進行轉換。如
int a = 10; //普通類型
max((int)&a);
typedef struct{int a;}str; //結構體
str S1 ;
S1.a = 2;
max((str)&S1);
③ C語言中void的作用是什麼
1、void真正發揮的作用在於:
(1) 對函數返回的限定;
(2) 對函數參數的限定。
2、void的含義
void的字面意思是「無類型」,void *則為「無類型指針」,void *可以指向任何類型的數據。
void表示函數沒有返回值,
如:void test(){}如果不是用void,
比如用int或者別的,
則函數需要有返回值如:int test(){return 1;}
其實就是聲明一個函數必需要得到一個結果,void就是不需要結果的一個方法(函數)否則如int、char等,就必需返回一個與其對應的數據這個方法(函數)才能編譯通過並試用。
void幾乎只有「注釋」和限製程序的作用,因為從來沒有人會定義一個void變數,讓我們試著來定義:
void a;
這行語句編譯時會出錯,提示「illegal use of type 'void'」。不過,即使void a的編譯不會出錯,它也沒有任何實際意義。
(3)c語言voidadd擴展閱讀
眾所周知,如果指針p1和p2的類型相同,那麼我們可以直接在p1和p2間互相賦值;如果p1和p2指向不同的數據類型,則必須使用強制類型轉換運算符把賦值運算符右邊的指針類型轉換為左邊指針的類型。
例如:
float*p1;int*p2;p1=p2;其中p1 = p2語句會編譯出錯,提示「'=' :
cannotconvertfrom'int*'to'float*'必須改為:
p1=(float)*p2;而void *則不同,任何類型的指針都可以直接賦值給它,無需進行強制類型轉換:
void*p1;int*p2;p1=p2;這並不意味著,void *也可以無需強制類型轉換地賦給其它類型的指針。因為「無類型」可以包容「有類型」,而「有類型」則不能包容「無類型」。道理很簡單,我們可以說「男人和女人都是人」,但不能說「人是男人」或者「人是女人」。下面語句編譯出錯:
void*p1;int*p2;p2=p1;提示「'=' :
cannotconvertfrom'void*'to'int*'。④ C語言,為什麼一個前面要加void add,一個不要什麼情況下要加
void 是函數返回值類型,void代表不需要返回值.
main是C語言程序的入口函數,你寫了main就是告訴程序要從main開始運行,這是c語言編譯器默認規定好的,在編譯器里也可以自行修改入口函數。
add是普通函數,如果定義在main函數下面就需要在main函數上面聲明一次,這樣main函數才能調用add函數,如果寫在上面則可以不用聲明。
⑤ C語言中的函數類型void什麼詳細意思
就是 int m() 那麼這個方法執行後有一個結果 就是int類型的
如果是 void m() 那麼這個方法只是執行大括弧里的內容 而沒有返回值
有返回值函數:這類函數被調用執行完後將向調用者返回一個執行結果,稱為函數返回值,如數學函數即屬於此類函數的;但是要注意:由用戶自定義的並且要返回函數值的函數必須在函數定義和函數說明中明確規定返回值的類型(如需要返回整型,用int符號說明);
無返回值函數:此類函數用於完成某項特定的處理任務,執行完後不向調用者返回執行結果,這類函數類似於其他語言的過程;由於函數無返回值,用戶在定義此類函數時可指定其函數返回值為「空類型」,說明符號為「Void」(注意空類型的說明符不可省,不然系統會默認返回值為int型)
有問題直接hi我,我不在時可以留言............
⑥ c語言的變數定義
C語言中變數遵循「先定義後使用」的原則:
1、定義變數的格式:數據類型 變數名;
首先要強調的一點是:變數的定義是一條語句,每條語句都是以分號結尾的。故定義完變數,後面不要漏掉「;」分號。
在變數定義中,「數據類型」表示想要存儲什麼類型的數據就定義什麼類型的變數。
如想要存儲整數就定義成 int 型;想要存儲小數就定義成 float 型或 double 型;想要存儲字元就定義成 char 型等等。
「變數名」就是你想給這個變數起個什麼名字,通常都是用字母、數字與下劃線組合而成。比如:
「int i;double price;double goods_price2」等等。
就表示定義了一個整型變數 i、小數型變數price、goods_price2;
2、變數定義完成後,接下來就是使用變數,為變數賦值。
將一個值放到一個變數中,這個動作叫「賦值」。通俗點講,「給變數賦值」意思就是將一個值傳給一個變數。
賦值的格式是:
變數名 = 要賦的值;
它的意思是將=右邊的數字賦給左邊的變數。比如:
i = 3;
這就表示將 3 賦給了變數 i,此時 i 就等於 3 了。
3、變數的定義和賦值,可以分成兩步寫,也可以將它們合成一步,而且事實上,在實際編程中用得最多的也是合二為一的寫法。
形式如下:
數據類型 變數名 = 要賦的值;
比如:int i = 3;
就表示定義了一個變數 i,並把 3 賦給這個變數。它與
int i;
i =3;
是等價的。
在定義變數時也可以一次性定義多個變數,比如:
int i, j;
這就表示定義了變數 i 和 j。這里需要強調的是,當同時定義多個變數時,變數之間是用逗號隔開的,千萬別寫成分號。這是很多新手最容易犯的錯誤,即將逗號和分號記混了。
同樣也可以在定義多個變數的同時給它們賦值:
int i = 3, j = 4;
中間還是用逗號隔開,最後別忘記輸入分號。
最後需要注意的是,在較老的 C89/C90 標准(也稱 ANSI C 標准)中,變數只能在程序的開頭定義,或者說變數定義的前面不能有其他非聲明或非定義的語句。
(6)c語言voidadd擴展閱讀:
在主回答中,提到了變數定義時,變數名通常都是用字母、數字與下劃線組合而成,但是實際上,變數名也不是隨便組合的,變數定義需要遵循一定的規范,否則容易產生歧義,影響整體程序代碼 的可讀性。
所以在定義變數的時候,要注意以下命名規范:
(1)、變數名的開頭必須是字母或下劃線,不能是數字。實際編程中最常用的是以字母開頭,而以下劃線開頭的變數名是系統專用的。命名應當直觀且可以拼讀,可望文知意,便於記憶和閱讀。
標識符最好採用英文單詞或其組合,不允許使用拼音。程序中的英文單詞一般不要太復雜,用詞應當准確。
(2)、變數名中的字母是區分大小寫的。比如 a 和 A 是不同的變數名,num 和 Num 也是不同的變數名。當標識符由多個片語成時,每個詞的第一個字母大寫,其餘全部小寫。
比如: int CurrentVal;
這樣的名字看起來比較清晰,遠比一長串字元好得多。
(3)、變數名絕對不可以是C語言關鍵字,不能有空格。
(4)、變數名的長度應當符合「min-length && max-information」原則。
C 是一種簡潔的語言, 命名也應該是簡潔的。例如變數名MaxVal 就比MaxValueUntilOverflow 好用。標識符的長度一般不要過長,較長的單詞可通過去掉「母音」形成縮寫。
另外,英文詞盡量不縮寫,特別是非常用專業名詞,如果有縮寫,在同一系統中對同一單詞必須使用相同的表示法,並且註明其意思。
⑦ 用C語言解決問題
你可以用一個二維數組代替一維數組:
int num[1000][20],i,j, lenth=20;
int num1[20] = { 1, 2, 3, 4, 5, 5, 6, 1, 4, 5, 5, 7, 1, 5, 3, 8, 3, 5, 9, 1 };
初值 for (i=0;i<lenth;i++) num[0][i]=num1[i];
雙重循環語句計算:
for (j=1;j<=1000;j++) for (i=0;i<lenth;i++) num[j][i]=num[j-1][i] + 1;
輸出也類似,雙重循環。
-----
節省內存方法:
只聲明 int num1[20],num2[20]; 初始化 num1[i] 數組
做循環 500 次:
{ 1推算2 : add(num1,num2,lenth);
輸出 num1[i] 數組
2推算1: add(num2,num1,lenth);
輸出 num2[i] 數組
} 完畢。
⑧ C語言中void是什麼意思
void真正發揮的作用在於: (1) 對函數返回的限定; (2) 對函數參數的限定。
1、void的含義:
void的字面意思是「無類型」,void *則為「無類型指針」,void *可以指向任何類型的數據。
void幾乎只有「注釋」和限製程序的作用,因為從來沒有人會定義一個void變數,讓我們試著來定義:
void a;
這行語句編譯時會出錯,提示「illegal use of type 'void'」。不過,即使void a的編譯不會出錯,它也沒有任何實際意義。
2、void的使用規則:
規則一:如果函數沒有返回值,那麼應聲明為void類型
在C語言中,凡不加返回值類型限定的函數,就會被編譯器作為返回整型值處理。但是許多程序員卻誤以為其為void類型。例如:
add ( int a, int b )
{
return a + b;
}
int main(int argc, char* argv[])
{
printf ( "2 + 3 = %d", add ( 2, 3) );
}
程序運行的結果為輸出:2 + 3 = 5,這說明不加返回值說明的函數的確為int函數。
規則二:如果函數無參數,那麼應聲明其參數為void。
在C++語言中聲明一個這樣的函數:
int function(void)
{
return 1;
}
則進行下面的調用是不合法的:
function(2);
因為在C++中,函數參數為void的意思是這個函數不接受任何參數。在Turbo C 2.0中編譯:
#include "stdio.h"
fun()
{
return 1;
}
main()
{
printf("%d",fun(2));
getchar();
}
編譯正確且輸出1,這說明,在C語言中,可以給無參數的函數傳送任意類型的參數,但是在C++編譯器中編譯同樣的代碼則會出錯。在C++中,不能向無參數的函數傳送任何參數,出錯提示「'fun' : function does not take 1 parameters」。
所以,無論在C還是C++中,若函數不接受任何參數,一定要指明參數為void。
3、void具體使用例子:
定義函數
返回值 函數名(參數1,參數2,參數3,.......)
{內容}
int sum(int a,int b)
{
int c;
return c;}
其中第一個int是返回值 就是別的函數調用此函數時這個函數給他的一個值。
如果調用時不需要返回值,則函數寫為
void sum(int a,int b){....} 此時函數沒有返回值
如果不需要參數 則int sum(void){...}
此時void的意義為空,就是沒有參數的意思
如果都不要 則為void sum(void);
(8)c語言voidadd擴展閱讀:
void不能代表一個真實的變數。下面代碼都企圖讓void代表一個真實的變數,因此都是錯誤的代碼:
void a; //錯誤
function(void a); //錯誤
void體現了一種抽象,這個世界上的變數都是「有類型」。
void的出現只是為了一種抽象的需要,如果你正確地理解了面向對象中「抽象基類」的概念,也很容易理解void數據類型。正如不能給抽象基類定義一個實例,我們也不能定義一個void(讓我們類比的稱void為「抽象數據類型」)變數。
參考資料:void(計算機語言關鍵字)_網路
⑨ 關於c語言利用指針變數求和的問題,請幫忙指正 #include<stdio.h> void add(int
#include<stdio.h>
voidadd(int*a,int*b,int*c)
{
*c=*a+*b;
}
intmain(void)
{
inta=1,b=2;
intc;
add(&a,&b,&c);
}