二進位制與八進位制,十六進製制的轉換
二進位制的3位相當於8進製的1位
二進位制的4位相當於16進製制的1位
getchar() 從鍵盤獲取乙個字元,有返回值,返回獲取的那個字元,沒獲取字元將一直等待
getchar()函式可用作吸收殘留的回車鍵,放在scanf後面
字元加單引號表示ascii碼值
字元常量是用單引號包圍的單個字元 1.普通字元常量 2.轉義字元常量
switch(表示式)
陣列的記憶體空間大小是從定義的時候就分配好的,陣列元素存在於連續的記憶體中,所以在定義陣列的時候,陣列元素的個數必須是個確定的值,即可以是普通常量或符號常量,不能是個變數。
注:不能整體訪問乙個陣列,只能訪問陣列的元素。 1.
陣列名,
表示該陣列的首元素的首位址
2.乙個指向陣列元素的指標,+1
表示它指向下乙個元素的位置.
eg:#include
void main()
; //a相當於int 型的常量指標,不是變數指標,指標指向陣列首元素的位址
printf("%p,%p\n",a,&a[0]);
int*p=&a[0];
printf("%p,%p\n",p+1,&a[1]);
printf ("%p\n",a+1);}1.
陣列名:a,
表示該陣列首元素的首位址,
作為乙個指標,
它指向的物件是這個陣列裡面的的元素,
a+1
表示它的位置偏移乙個它所指物件的長度.
2.&a,
表示對整個陣列這段連續記憶體取位址,
當它作為乙個指標的時候,
它所指的物件是整個陣列這塊連續記憶體,&a+1
表示它的位置偏移乙個它所指的物件長度,
到達了陣列尾.3.
p+n=p+n*sizeof(p所指的物件型別)
eg:#include
void main()
;printf("%p,%p\n",a,&a); //取乙個陣列名的位址所產生的是指向陣列的指標,&a的型別則相當於int **,是所謂指向陣列
的指標,*操作符
具有從右向左的結合性,即int **a相當於int *(*a)
printf("%p,%p\n",a+1,&a+1);
}結果為:
0xbfff024c,0xbfff024c
0xbfff0250,0xbfff0260
int*a[5] ;
乙個指標陣列a,
陣列裡的每個元素都是乙個指向int
型資料的指標
int(*p)[5];
乙個指標,
指向陣列5
個int
型元素的陣列 // p+1表示移動5個int型位元組
二維陣列可以把它看成是乙個一維陣列,一維陣列裡面每一元素都是單個資料,二維陣列裡面每個元素都是乙個陣列,所以,二維陣列可以看成是以陣列為元素的一維陣列,即陣列的陣列,在儲存的時候是以陣列,按行的方式儲存的。eg:
int a[2][3]=,}; 2行3列,第乙個元素為第一行,第二個元素為第二行。
可以理解為:a[0]=
a[1]=
#include
void main()
;//可以把該二維陣列看成是含4
個元素的一維陣列
/* printf("%p\n",a);//a,該陣列的首元素的首位址,在該處首元素也就是第一行,在數字1
的位置作為指標,指向的物件是行
printf("%p\n",a+1);//a+1即跨過乙個該指標指向的物件的長度,到了數字6
的位置
int (*p)[5]=a;
printf("%p,%p\n",p,p+1);
printf("%p\n",*a); //第一行地1列的位址
printf("%p\n",*a+1); //第1行第2列的位址
printf("%p\n",*(a+1)); //第二行地一列的位址
printf("%p\n",*(a+1)+1); //第二行第二列的位址
printf("%p\n",&*(a+1)); //指向第二行的指標
printf("%p\n",&*(a+1)+1);//指向地3行的指標
printf("%d\n",*(*(a+1)+1)); //a[1][1]
}注:二維陣列名,表示指向首行的位址,物件是行,在指向行的指標前面加乙個*
,就轉換為指向列的指標;
在指向列的指標的前面加乙個&
,就成為指向行的指標(
指標要在每一行的首位才行)
。
字串一般存放在陣列中時,輸入用getchar();輸出直接用%s 加陣列名即可。
strlen();計算字串中字元的個數,並將字元的個數作為這個函式的返回值。在計算字串中字元個數的
時候不計算表示字串結束的'\0'字元。
結構體
1.struct 2.student 3student1 (1.表示結構體標誌 2.表示結構體名 3.表示結構體變數)
可以用乙個結構體變數給另乙個結構體變數整體賦值,不可以對結構體整體操作,只可以操作裡面的成員變數
eg:struct student student1=;
struct student student2;
student2=student1;2. 結構體指標變數:乙個專門用來指向結構體變數的指標
指向乙個結構體變數的指標的值是這個結構體變數的首位址
結構指標變數定義的一般形式:
struct 結構體名 *p
通過結構體指標變數可以訪問結構體成員
一般形式為:結構體指標變數->成員名
3.結構體陣列
struct student stu[2];結構體陣列的引用
結構體陣列名[下標號].成員名
eg:stu[0].num=102;
用指標變數的方式給結構體複製#include
struct student
;
void main()
for(p=stu;p
}
c 中的知識點
1.類和結構的區別 1.從儲存上,類儲存在堆上的引用,結構是儲存在棧上的值型別 2.從關鍵字上,類使用class,結構使用struct 3.繼承上,類可以繼承,結構不可以繼承 4.類是引用型別,結構是值型別 2ref和out區別 ref無論是按值傳遞還是按照引用傳遞,任何變數都要初始化 out變數不...
C 基礎知識點
1.單行注釋 多用於給變數注釋 2.多行注釋 多用於大段文字注釋 3.文件注釋 多用於給類和方法注釋 只能以字母 或者 符號開頭。開頭暫時不要用,它們有自己特殊的意義 後面可以跟任意的字母數字下劃線 命名法 1 camelclass駝峰命名法 變數名首單詞的首字母小寫,其餘的每個單詞的首字母大寫eg...
C 基礎知識點
主要包含c 常用語句 語言特徵 物件導向程式設計基礎 集合和索引。c 常用語句 物件導向程式設計基礎 高階程式設計 多重介面實現,c 不允許多重類繼承,但c 允許多重介面實現,定義時基類必須在介面之前,如 public class mobile phone,iusb,ibluetooth publi...