C語言指標,預編譯,結構體

2021-10-09 05:19:26 字數 2043 閱讀 9745

1指標

(1)指標變數的定義

基本資料型別說明符 *識別符號名稱;

int

*ptr1;

float

*ptr2;

char

*ptr3;

(2)指標變數的引用

int

*p1,m=3;

p1=&m;

//p1表示位址,應該取址m

(3)運算子

&運算子:取址運算子

*運算子:間接訪問運算子

(4)指標變數的函式

void

swap

(int

*x,int

*y)//swap實現兩個整數的交換

還有inverse 用於倒置

(5)指標與陣列

指標與一維陣列

int a[10]

,*ptr;

ptr=a;

//或者ptr=&a[0]

注意點:

int a[10]

,*ptr;

ptr=a;

//ptr+n即為a+n表示a[n]的位址即為&a[n]

//*(ptr+n)和*(a+n)等效於a[n]

以及指標與二維陣列

int a[3]

[4];

&a[0][

0];a[

0];//第0行的位址亦也表示首行的位址

//其他行以a[n]來表示

//a[1][2]<=>a[1]+2或者*(a+1)+2

//*(a+i)=a[i]

(6)指標和字串

char str[

100]

;str"i am a studet ."

;//wrong

char str[

100]

="i am a studet ."

;//right

char

*pstr;pstr=

"i am a studet ."

;//right

char

*str[4]

//定義了乙個4個元素的陣列,這些元素都是指標型別的

指標的位址分配最常用的兩個函式malloc()和free()

2預編譯命令

巨集定義

#include

或#include

"stdio.h"

#define pi 3.1415926

3結構體與共用體

(1)結構體

struct

結構體名;

引用結構體變數

1:結構體變數.成員名 student.name

2:通過指標來引用 p->成員名 p->name

3:(*p).成員名

若定義為 struct student 則它們為乙個整體

定義名字

typedef 原型別名 新型別名

typedef

struct stu

stu;

(2)共用體

union

名字;//enum列舉名;

enum

名字;

p=

(int*)

malloc

(sizeof

(int*)

)//開闢空間和強制型別轉換

結構體指標 巨集 預編譯

1 陣列作為函式引數的時候,其實傳遞給函式的是陣列的首位址 2 指標 一次移動 乙個型別那麼長的距離 定義 指向結構體變數的指標 結構體指標 stustu2 stu o stu2 printf s o name p name 先通過指標找到指標指向的結構體變數,通過結構體變數對結構體成員進行操作 p...

爬爬爬之路 C語言 九 結構體指標與預編譯指令

結構體是一種自定義的資料型別 結構體的指標和基礎資料型別差不多 結構體變數名不能當成它的首元素位址 需要用取位址符獲得結構體變數的位址,但是結構變數的位址就相當於指向結構體變數的第乙個成員變數的位址 如以下 演示 typedef struct student student student stud...

結構體指標,C語言結構體指標詳解

結構體指標,可細分為指向結構體變數的指標和指向結構體陣列的指標。前面我們通過 結構體變數名.成員名 的方式引用結構體變數中的成員,除了這種方法之外還可以使用指標。前面講過,student1 表示結構體變數 student1 的首位址,即 student1 第乙個項的位址。如果定義乙個指標變數 p 指...