華為的面試題 ,大家看一下

2021-04-07 07:45:27 字數 709 閱讀 2858

typedef int * pint ;

#define pint int *

那麼:const pint p ;//p不可更改,但p指向的內容可更改

const pint p ;//p可更改,但是p指向的內容不可更改。

上面說的對嗎?

答案const pint p1 ;//p1不可更改,但p1指向的內容可更改

const pint p2 ;//p2可更改,但是p2指向的內容不可更改

但是其實 const pint p2指向的內容,也是可以更改的,只不過不能通過p2來更改,借用3樓的程式如下:

#include 

typedef int* pint;

#define pint int*

int main(void)

這個程式可以通過編譯執行,加/*    */部分就是不能更改的

可以從上述程式中可以看出

const pint p1 ;//p1不可更改,但p1指向的內容可更改

const pint p2 ;//p2可更改,但是p2指向的內容不可更改

假如將/*p2 = p+1;*/也注釋掉,那麼p2的內容隨p1指向的內容改變而改變了。

所以最終的答案是:

const pint p1 ;//p1不可更改,但p1指向的內容可更改

const pint p2 ;//p2可更改,但是p2指向的內容也可更改,只是不能靠自己來改而已

分享一下今天的面試題

悲催的又要開始找工作了。從今天開始,遇到好的面試題就記下來給大家分享一下。今天的收穫還是不錯的,雖然杯具了,但那公司的面試題目有點意思。其實很多都是基礎,抽象類啊,繼承過載啊,可是以前都不怎麼重視。現在開始,不懂的面試題都要記下來,回來後找解決方法。1 題目要求差不多是這樣 完成下面的方法,要求返回...

面試前看一下快速排序 Quick Sort

演算法描述 使用分治法來把乙個串 list 分為兩個子串 sub lists 具體演算法描述如下 從數列中挑出乙個元素,稱為 基準 pivot 重新排序數列,所有元素比基準值小的擺放在基準前面,所有元素比基準值大的擺在基準的後面 相同的數可以到任一邊 在這個分割槽退出之後,該基準就處於數列的中間位置...

求助 大家看一下正文,關於陣列擷取的問題

1,2,3,4,5,6,7,8,9,10 11,12,13,14,15,16,17,18,19,20 91,92,93,94,95,96,97,98.99,100 按照這樣的格式顯示出來就行了!a print a for i in range 1,101,1 if i 10 print a if i...