苦學陣列與指標 新手露露

2021-09-26 22:57:18 字數 4155 閱讀 2122

知識點總結

1.今日總結:int *p=&a 定義乙個指標變數 *p訪問間接 解應用

//16進製制 記憶體 機器語言

//組合語言 //高階語言

//大小端 小端:低位址存放小資料 (手機) 大端:低位址存放高資料(pc) 判斷當前機器是大端還是小端

//不同型別的指標,解應用所訪問的記憶體位元組大小不一樣

//void不能解應用 沒有具體的大小 但是可以接受任何型別 void *泛型

//指標在32位大小為4個位元組 64位平台下指標大小為8個位元組 任何型別的指標大小都是4個位元組 0 『0』 null

//指標加減整數 加整數 加幾個位元組? 取決於指標的型別。什麼型別的指標就加幾個位元組

//void show(int *p.int len) int len =sizeof(arr)/sizeof(arr[0]);

//區分

// int arr 指標陣列

2:陣列與指標:

*** 初始化:陣列:

(1)char a=;//按字串初始化,大小為6.

(2)char b=;//按字元初始化(錯誤,輸出時將會亂碼,沒有結束符)

(3)char c=;//按字元初始化

指標://(1)指向物件的指標:(()裡面的值是初始化值)

int *p=new int(0) ; delete p;

//(2)指向陣列的指標:(n表示陣列的大小,值不必再編譯時確定,可以在執行時確定)

int *p=new int[n]; delete p;

//(3)指向類的指標:(若建構函式有引數,則new class後面有引數,否則呼叫預設建構函式,delete呼叫析構函式)

class *p=new class; delete p;

//(4)指標的指標:(二級指標)

int *pp=new (int)[1];

pp[0]=new int[6];

delete pp[0];

指標陣列:

int* arr[8];

//優先順序問題:的優先順序比高

//說明arr是乙個陣列,而int是陣列裡面的內容

//這句話的意思就是:arr是乙個含有8和int*的陣列

陣列指標:

int (arr)[8];

//由於的優先順序比高,因此在寫陣列指標的時候必須將arr用括號括起來

//arr先和結合,說明p是乙個指標變數

//這句話的意思就是:指標arr指向乙個大小為8個整型的陣列。

3.今日練習題:

1.5位運動員參加了10公尺臺跳水比賽,有人讓他們**比賽結果

a選手說:b第二,我第三;

b選手說:我第二,e第四;

c選手說:我第一,d第二;

d選手說:c最後,我第三;

e選手說:我第四,a第一;

比賽結束後,每位選手都說對了一半,請程式設計確定比賽的名次。

2.日本某地發生了一件**案,警察通過排查確定殺人**必為4個。

嫌疑犯的乙個。以下為4個嫌疑犯的供詞。

a說:不是我。

b說:是c。

c說:是d。

d說:c在胡說

已知3個人說了真話,1個人說的是假話。

現在請根據這些資訊,寫乙個程式來確定到底誰是**。

3.在螢幕上列印楊輝三角。

11 1

1 2 1

1 3 3 1

1 4 6 4 1

//#include//#include//int main()

////

// }

// }

// }

// }

// }

// }

// }

// }

// }

// }

// system("pause");

// return 0;

//}

在這裡//#include//#include//int main()

//// system("pause");

// return 0;

//}插入**片

//#include//#include//#define n 10//巨集定義,方便修改,想列印幾行,改動n值就行

//陣列什麼時候確定大小?編譯

陣列什麼時侯分配記憶體?執行

陣列最大分配多少記憶體?1m/2m

//int main()

//;// int i, j;

// for (i = 0; i < 10; i++)

// for (i = 2; i < n; i++)

// }

// //以下這段迴圈然後列印出來

// for (i = 0; i < n; i++)

// printf("\n");

//// }

// system("pause");

// return 0;

//}

4練習題加:

1.編寫函式:

unsigned int reverse_bit(unsigned int value);

這個函式的返回值是value的二進位制位模式從左到右翻轉後的值。

如:在32位機器上25這個值包含下列各位:

00000000000000000000000000011001

翻轉後:(2550136832)

10011000000000000000000000000000

程式結果返回:

2550136832

2.不使用(a+b)/2這種方式,求兩個數的平均值。

3.程式設計實現:

一組資料中只有乙個數字出現了一次。

其他所有數字都是成對出現的。

請找出這個數字。(使用位運算)

4.有乙個字元陣列的內容為:「student a am i」,

請你將陣列的內容改為"i am a student".

要求:不能使用庫函式。

**:

//#include// #includeunsigned int reverse_bit(unsigned int value)

這個函式的返回值value的二進位制位模式從左到右翻轉後的值

//unsigned int round(unsigned n)

// return sum;

//}//

//int main()

//#define _crt_secure_no_warnings

//#include//#include//int main()

//

//#include//#include//int main()

//;// int i = 0;

// int len = sizeof(arr) / sizeof(arr[0]);

////

// for (i = 1; i < len; i++)

// // printf("the single number is:%d", arr[0]);

// system("pause");

// return 0;

//}

#define _crt_secure_no_warnings 1

#include#include #include #include void reverve_swap(char *left, char *right)

}char *reverve(char *p)

end = p - 1;

reverve_swap(start, end);//逆序單個單詞

if (*p == ' ') //找到空格

p++;

} return ret;

}int main()

指標與陣列,指標陣列 陣列指標

int a 10 print n a p,a p a,a print n a 1 p,a 1 p a 1,a 1 a做乙個指標,步長為4,指向乙個元素,a做乙個指標,步長為40,指向乙個維陣列 int b 3 4 print n b p,b p,b p b,b,b print n b 1 p,b 1...

指標陣列與陣列指標

1.指標陣列 指標陣列中每乙個元素都是乙個指標,也既是存放字串的首位址。所以指標陣列適合處理若干個長度不等的字串。定義的一般形式為 型別說明符 指標陣列名 陣列長度 例如 int p 3 宣告乙個陣列,指標陣列p,由3個int型別指標變數元素組成 從運算子的優先順序分析,由於 的優先順序大於 所以p...

指標陣列與陣列指標

呵呵,實在是厭倦了繞口的解釋。指標陣列,故名思義,就是指標的陣列,陣列的元素是指標 陣列指標,同樣,就是直想陣列的指標。簡單舉例說明 int p 2 首先宣告了乙個陣列,陣列的元素是int型的指標。int p 2 宣告了乙個指標,指向了乙個有兩個int元素的陣列。其實這兩種寫法主要是因為運算子的優先...