返回目錄:
問題:
問:函式中的void和指標中的void*有什麼區別?
答:在函式中的void是表示無型別或無返回型別。void指標是通用指標,用來存放任何資料型別的引用。
分析:
void真正發揮的作用在於:
1.對函式返回的限定。
2.對函式引數的限定。
《函式返回值》 《函式名》(引數1,引數2,引數3,.......)
------------
int sum(int a,int b)
其中第乙個int是返回值 就是別的函式呼叫此函式時這個函式給他的乙個值。
1.如果呼叫時不需要返回值,則函式寫為void sum(int a,int b),此時函式沒有返回值。
如果不需要引數,則int sum(void)《或者int sum()》,此時void的意義為空,就是沒有引數的意思。
3.如果都不要,則為void sum(void);《或者void sum();》
4.main()
void的作用:
1.對函式返回的限定,當函式不需要返回值時,用void限定,如void fun();
2.對函式的引數的限定,當函式不需要接受引數時,用void限定,如int fun(void)
void指標的作用:
1.函式返回值是任意型別的指標,如void *fun();
2.定義函式指標pfun,如void(*pfun)(),如果該函式指標指向這類函式(即void函式),例如:
void fun()//這類函式
void main()
3.void指標不能復引用,也就是不能取得它指向的位址的內容。
void *pvoid;
int *pint;
printf("%d",*pint);//正確
printf("%d", *pvoid);//錯誤
由於pint是整型變數指標,解引用取得該指向位址的內容是整型的,知道從第一位元組到第四個位元組的記憶體,而且從低到高儲存整數的32補碼。
而pvoid是指向還不知道資料型別的位址的通用指標,復引用取得的內容不清楚是什麼資料型別,內容占用的記憶體多大都不清楚。
擴充套件知識:double資料型別復引用是從第一位元組到第八位元組的一塊記憶體,從低到高儲存double數的浮點數符號位、階符、階碼和尾數。
問題:
問:下面**中哪個地方是錯誤的?
#include
using namespace std;
void main()
答:
#include
using namespace std;
void main()
問題:
問:關於通用指標與解引用的解決問題,以下**哪些語句是錯誤的?
void main()
面試題 指標
一 指標 1 利用指標實現兩數交換 include using namespace std void swap1 int p,int q void swap2 int p,int q void swap3 int p,int q void swap4 int p,int q void swap5 i...
面試題 關於指標
面試題 下列c 程式會在哪一行崩潰?struct s main 分析 int p s.i時,一直到p 0 4,p 1 3的時候,p始終等於 s.i。s.p p 建立了如下的關係 s.p存了p的值,也即 s.i,s.p 1 相當於 s.i 1 即s.i的位址加1.也就是s.p.s.p 1 和s.p其實...
面試題 指標 引用
返回目錄 問題 問 引用與指標有什麼區別?答 1.引用必須初始化,指標可以不用。2.引用初始化以後就不能被改變 即只能初始化一次,始終只指向指定的物件 而指標可以改變所指向的物件。3.不存在指向空值的引用,而指標可以指向乙個空值,即空指標。4.因為引用不能指向空值,這意味著使用引用之前不需要測試其合...