C語言的靈魂--指針基本用法

指針的的基本概念

指針(pointer)是一個值爲內存地址的變量(或數據對象)
內存地址一般使用16進制來表示。通俗的理解爲,變量就是一個內存,內存肯定有內存地址,而我們的指針就是來保存這個內存地址的變量。

1、基本用法

數據類型*指針變量名;
例如

int*ptr_num
char*ptr_name;
float*money_ptr;
double*p_price;

注意:在頭文件stdio.h中,NULL被定義爲常量,int*ptr_num=NULL;指針的初始值爲空,表示指針不指向任何地址

2、取地址符&

int num=1024;
int *ptr_num=#
//%p 一個指針類型的佔位符
//%x 16進制佔位符
printf("num變量的地址是:%p\n",ptr_num);
return 0;

打印輸出00ff2345,注意:此處不能直接賦值常量。

3、間接運算符

*ptr_num=1111;
表示根據內存地址找到相應地址的空間,這個空間的值是1111

int num=1024;
int * ptr_num=#
//指針的地址,地址不一樣了
int * ptr_num2=&ptr_num;
//%p 一個指針類型的佔位符
//%x 16進制佔位符
printf("num變量的地址是:%p\n",ptr_num);
printf("*ptr_num對應的值是:%d\n",*ptr_num);
*ptr_num=9999;//重新賦值爲9999;
//如何通過指針的指針,訪問到原指針指向的空間
printf("\n原空間num對應的值是:%d\n",**ptr_num2);//兩個百分號
return 0;

輸出1024,表示這個地址所對應的空間裏面的值是1024,最後變成9999。

4、指針的使用實例

int num = 10;
int * ptr_num;
ptr_num=#

* ptr_num=>num;
int *ptr_num2;
ptr_num2=ptr_num;//兩個指針都指向同一塊內存
*ptr_num2=99;//等價寫法:num=99;

1、指針就是一個變量,只不過該變量中存儲的是另一個對象的地址
2、如果一個變量存儲另一個對象的地址,則稱該變量指向這個對象
3、指針變量可以賦值,指針的指向在程序中可以改變
4、指針可存放C語言中的任何基本數據類型,數組以及其他所有高級數據結構的地址
5、若指針已經聲明指向某種類型數據的地址,則它不能用於存儲其他類型數據的地址
6、應爲指針指定一個地址後,才能在語句中使用指針。

發佈了31 篇原創文章 · 獲贊 6 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章