随笔 - 1762  文章 - 0  评论 - 109  阅读 - 431万

C++中指针和指针变量

指针和指针变量的理解:

复制代码
#include<iostream>
using namespace std;
int main()
{
    int n;
    int * m;
    m = &n;
    n = 10;
    cout << "n=:" << n << endl;
    *(int*)m = 110;
    cout << "*m:" << *m << endl;
    cout << "n:" << n << endl;
    cout << "&n:    " << &n << endl;
    cout << "m:    " << m << endl;
    system("pause");
    return 0;
}
复制代码

 

指针:放的是其他普通变量在内存中的首地址。比如上面的代码,&n代表n的首地址,是个指针。&n还有个名字,叫做引用,n是个整型变量,整型变量这四个字只是个名词,它指代的是内存中一块连续地址,此例是4个字节的连续内存地址。地址是用整数表示的。

指针变量:存放其他变量地址的那个变量。比如上面代码中的m就是一个指针变量。

所以,指针是个首地址,是个整数,是个常量;指针变量是个变量。指针变量前面加个*号,意思是解引用,代表m所指向的那个普通变量的整型值。

int * m; //这句话中int *代表指向整型的指针,这样写是准备定义一个指针变量,m就是定义的指针变量,它用来存放其他普通变量的首地址。也可以这样理解:m是个指针变量,它的类型是整型指针类型。


 再来一例:

复制代码
#include<iostream>
using namespace std;
int main()
{
    int a = 10;
    int b = 22;
    int *p1;
    int* p2;
    p1 = &a;
    p2 = &b;
    cout << "a的地址是:"<<&a<< endl;
    cout << "b的地址是:" << &b << endl;
    cout << "指针变量p1所指向的地址是:"<<p1 << endl;
    cout << "指针变量p2所指向的地址是:" << p2 << endl;
    system("pause");
    return 0;

}
View Code
复制代码

运行结果:

 

复制代码
#include<iostream>
using namespace std;
int main()
{
    int a = 10;
    int b = 22;
    int *p1;
    int* p2;
    p1 = &a;
    p2 = &b;
    cout << "a的地址是:"<<&a<< endl;
    cout << "b的地址是:" << &b << endl;
    cout << "指针变量p1所指向的地址是:"<<p1 << endl;
    cout << "指针变量p2所指向的地址是:" << p2 << endl;
    cout << "指针变量p1本身的地址是:" << &p1 << endl;
    cout << "指针变量p2本身的地址是:" << &p2 << endl;
    system("pause");
    return 0;

}
View Code
复制代码

运行结果:

可见,指针本身在内存中也有自己的地址。


 

posted on   一杯明月  阅读(4211)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示