知識點總結
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元素的陣列。其實這兩種寫法主要是因為運算子的優先...