C++指針學(xué)習(xí)詳解
指針的基本概念
指針的作用:可以通過指針間接的訪問內(nèi)存
- 內(nèi)存的編號從0開始記錄,一般使用十六進制數(shù)字表示。
- 可以使用指針變量保存地址
- 指針=地址(簡單理解)
一、指針變量的定義和使用
指針變量定義語法: 數(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;
//使用指針
//可以通過解引用 的方式 來找到 指針指向的內(nèi)存
//指針前 加*代表 解引用,找到指針指向的內(nèi)存中的數(shù)據(jù)
*p = 1000;
cout << "a=" << a << endl;
cout << "*p=" << *p << endl;
system("pause");
return 0;
}
二、指針所占的空間內(nèi)存
編譯環(huán)境行x64為 64位下 占8個字節(jié)
編譯環(huán)境行x86為 32位 則占4個字節(jié)
計算指針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.空指針 野指針
空指針:指向編號為0的空間
用途:初始化指針
2. const修飾指針
三種指針
1.const 修飾指針 常量指針
指針的指向的值不可以修改,
指針的指向可以修改。
int a=10;
int b=0;
int *p=&a;
例如:*p=20;錯誤,指針的指向的值不可以修改
int const *p=&b;對
2.指針常量
int * const p;
指針常量;
指針的指向不可以修改
指針的值可以修改;
3.const既可以修飾指針,又修飾常量
const int *const p=&a;
利用指針訪問數(shù)組中的每個元素.
#include<iostream>
using namespace std;
int main()//主函數(shù)
{
//利用指針訪問數(shù)組的元素
int arr[10] = {1,2,3,4,5,6,7,8,9,10};
cout << "輸出數(shù)組第一個元素" << arr[0]<<endl;
int* p = arr;//arr就是數(shù)組的首地址
cout << "利用指針訪問第一個元素:" << *p << endl;
p++;//讓指針向后偏移4個字節(jié)
cout << "利用指針訪問第二個元素:" << *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é)
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
C語言實現(xiàn)Linux下的socket文件傳輸實例
這篇文章主要介紹了C語言實現(xiàn)Linux下的socket文件傳輸?shù)姆椒?較為詳細的分析了C語言文件Socket文件傳輸客戶端與服務(wù)器端相關(guān)實現(xiàn)技巧,需要的朋友可以參考下2015-06-06
C++中關(guān)鍵字Struct和Class的區(qū)別
這篇文章主要介紹了C++中關(guān)鍵字Struct和Class的區(qū)別,本文用大量實例講解了Struct和Class的區(qū)別,需要的朋友可以參考下2014-09-09

