C語言指標例項詳解

2021-09-01 14:50:23 字數 1918 閱讀 3162

#include

//*a是指標變數  a就代表儲存位址

void test1(int *a)

printf("------------------------指標與位址--------------------------\n");

int var = 20; /*實際變數的宣告*/

int *ip;  /*指標變數的宣告*/

/*int var = 20;

int ip;

var 等價於 ip

&ip  等價於 &var

&ip 就相當於儲存位址

int  var12 = ;

int  i, *ptr1;

/* 指標中的陣列位址  var12 預設 第一塊位址    

*/ptr1 = var12;

printf("var12 等於 &var12[i] 第一塊位址是 %p\n", var12);

printf("&var12[1] 指定第二塊位址是 %p\n", &var12[1]);

for (i = 0; i < 3; i++)

, };

int(*b)[2];

b = a;

//b = &a[0][0];

//指向位址

//b[0] 相當於 第一行陣列的位址  

printf("b儲存值:(指向位址)= %p,%p\n",  b[0], (b[0] + 1));

printf("a儲存值:(指向位址)= %p,%p\n", a[0], (a[0] + 1));

//b[0] 相當於 第一行陣列的位址  b[0][0] 相當於 第一行陣列的第乙個值

printf("儲存值:(輸出第一行陣列的位址的值)= %d,%d\n", b[0][0], b[0][1]);

//因為前面加了位址符所以輸出的是 第一行陣列的 各個位址

printf("儲存值:(輸出第一行陣列每個的位址)= %p,%p\n", &b[0][0], &b[0][1]);

//指向陣列的 指標陣列  *b[0] 指向第乙個陣列  預設的是第乙個數

printf("儲存值:(指向陣列的值)= %d,%d\n", *b[0], (*b[0]+1));

printf("儲存值:(指向陣列的值)= %d,%d\n", *b[1], (*b[1]+1));

//printf("u1未呼叫之前 %d \n", u1);

//printf("*u未呼叫之前 %d\n", *u);

//printf("*u1未呼叫之前 %p\n", *(&u1));

u = test2(&h);

printf("*u呼叫之後 %d,位址 %p\n", *u, u);

system("pause");

return 0; }/*

備註32位編譯器

char :1個位元組

char*(即指標變數): 4個位元組(32位的定址空間是2^32, 即32個bit,也就是4個位元組。同理64位編譯器)

short int : 2個位元組

int:  4個位元組

unsigned int : 4個位元組

float:  4個位元組

double:   8個位元組

long:   4個位元組

long long:  8個位元組

unsigned long:  4個位元組

64位編譯器

char :1個位元組

char*(即指標變數): 8個位元組

short int : 2個位元組

int:  4個位元組

unsigned int : 4個位元組

float:  4個位元組

double:   8個位元組

long:   8個位元組

long long:  8個位元組

unsigned long:  8個位元組

*/

c語言指標詳解

一.指標的概念 指標是乙個特殊的變數,它裡面儲存的數值被解釋成為記憶體裡的乙個位址。要搞清乙個指標需要搞清指標的四方面的內容 指標的型別,指標所指向的型別,指標的值或者叫指標所指向的記憶體區,還有指標本身所佔據的記憶體區。1.指標的型別 從語法的角度看,你只要把指標宣告語句裡的指標名字去掉,剩下的部...

C語言指標詳解

類似於 int p char p 或者自定義型別的 person p struct p 這些都是基本的指標變數,不管什麼型別的指標變數都是乙個存位址的變數,所以它們的大小都是四個位元組 還有一種void p 型別,類似於 js 或者 c 的 var 可以傳入任何型別變數的位址,也可以轉換成任何型別變...

C語言指標詳解

c語言指標應用 一 指標是什麼 指標是乙個特殊的變數,它存的是記憶體裡的乙個位址。指標四要素 1.指標的型別 把指標名字去掉,剩下的部分就是這個指標的型別。這是指標本身所具有的型別如下 1 int p 指標的型別是int 2 char p 指標的型別是char 3 int p 指標的型別是int 4...