C++指針學(xué)習(xí)詳解
指針的基本概念
指針的作用:可以通過(guò)指針間接的訪問(wèn)內(nèi)存
- 內(nèi)存的編號(hào)從0開(kāi)始記錄,一般使用十六進(jìn)制數(shù)字表示。
- 可以使用指針變量保存地址
- 指針=地址(簡(jiǎn)單理解)
一、指針變量的定義和使用
指針變量定義語(yǔ)法: 數(shù)據(jù)類型* 變量名
#include<iostream>
using namespace std;
int main()//主函數(shù)
{//定義指針 :數(shù)據(jù)類型*變量名
int a = 10;
//使用指針
int* p;//創(chuàng)建指針
p = &a;//&取址符
cout << "a的地址為:" << &a << endl;
cout << "指針P為:" << p << endl;
//使用指針
//可以通過(guò)解引用 的方式 來(lái)找到 指針指向的內(nèi)存
//指針前 加*代表 解引用,找到指針指向的內(nèi)存中的數(shù)據(jù)
*p = 1000;
cout << "a=" << a << endl;
cout << "*p=" << *p << endl;
system("pause");
return 0;
}
二、指針?biāo)嫉目臻g內(nèi)存
編譯環(huán)境行x64為 64位下 占8個(gè)字節(jié)
編譯環(huán)境行x86為 32位 則占4個(gè)字節(jié)
計(jì)算指針p所占的內(nèi)存:
#include<iostream>
using namespace std;
int main()//主函數(shù)
{//定義指針 :數(shù)據(jù)類型*變量名
int a = 10;
//int* p;//創(chuàng)建指針
//p = &a;//&取址符
int* p = &a;
cout << "int* p的內(nèi)存為:" << sizeof(int* )<< endl;
cout << "int* p的內(nèi)存為:" << sizeof(float*) << endl;
cout << "int* p的內(nèi)存為:" << sizeof(double *) << endl;
cout << "int* p的內(nèi)存為:" << sizeof(char*) << endl;
system("pause");
return 0;
}
1.空指針 野指針
空指針:指向編號(hào)為0的空間
用途:初始化指針
2. const修飾指針
三種指針
1.const 修飾指針 常量指針
指針的指向的值不可以修改,
指針的指向可以修改。
int a=10;
int b=0;
int *p=&a;
例如:*p=20;錯(cuò)誤,指針的指向的值不可以修改
int const *p=&b;對(duì)
2.指針常量
int * const p;
指針常量;
指針的指向不可以修改
指針的值可以修改;
3.const既可以修飾指針,又修飾常量
const int *const p=&a;
利用指針訪問(wèn)數(shù)組中的每個(gè)元素.
#include<iostream>
using namespace std;
int main()//主函數(shù)
{
//利用指針訪問(wèn)數(shù)組的元素
int arr[10] = {1,2,3,4,5,6,7,8,9,10};
cout << "輸出數(shù)組第一個(gè)元素" << arr[0]<<endl;
int* p = arr;//arr就是數(shù)組的首地址
cout << "利用指針訪問(wèn)第一個(gè)元素:" << *p << endl;
p++;//讓指針向后偏移4個(gè)字節(jié)
cout << "利用指針訪問(wèn)第二個(gè)元素:" << *p << endl;
//解引用
cout << "利用指針遍歷數(shù)組:" << endl;
int* p2 = arr;
for (int i = 0;i < 10; i++)
{
//cout << arr[i] << endl;
cout << *p2 << endl;
p2++;
}
system("pause");
return 0;
}
總結(jié)
本篇文章就到這里了,希望能夠給你帶來(lái)幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
C語(yǔ)言進(jìn)階教程之字符串&內(nèi)存函數(shù)
對(duì)于字符,在計(jì)算機(jī)內(nèi)部都是用數(shù)字(字符編碼)來(lái)表示的,而字符串是“字符連續(xù)排列”的一種表現(xiàn),這篇文章主要給大家介紹了關(guān)于C語(yǔ)言進(jìn)階教程之字符串&內(nèi)存函數(shù)的相關(guān)資料,需要的朋友可以參考下2021-09-09
C語(yǔ)言圣誕樹(shù)的實(shí)現(xiàn)示例
本篇主要介紹了C語(yǔ)言圣誕樹(shù)的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-12-12
C語(yǔ)言學(xué)生成績(jī)管理系統(tǒng)課程設(shè)計(jì)
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言學(xué)生成績(jī)管理系統(tǒng)課程設(shè)計(jì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-01-01
C++鏈表實(shí)現(xiàn)通訊錄設(shè)計(jì)
這篇文章主要為大家詳細(xì)介紹了C++鏈表實(shí)現(xiàn)通訊錄設(shè)計(jì),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-06-06

