C语言指针的感悟

写这篇文章要感谢(微信公众号  C语言与CPP编程 里 C++ 指针详解)

此处我写的就是看过那篇文章后的一点启发(例如:如何取出一个4个字节int类型数的第三个字节存储的内容之类的问题)

#include<iostream>
using namespace std;
int main(){
    int m = 65536;
    char* p = (char*)&m;
    cout<<"第一个字节的内容: "<< (*p - NULL) << endl;
    cout<<"第二个字节的内容: "<< (*(p + 1) - NULL) << endl;
    cout<<"第三个字节的内容: "<< (*(p + 2) - NULL) << endl;
    cout<<"第四个字节的内容: "<< (*(p + 3) - NULL) << endl;
    return 0;
}

此代码的结果为: 

 

 解释: 65536 四个字节分别为 00000000 00000001 00000000 00000000(从左到右 是从高位到低位)   故输出的结果为 0 0 1 0

这里多说一句:其实你定义一个指针变量,然后为它赋予一个地址,他就会指向从那个地址开始然后加上sizeof(你定义的指针变量)这块内存。

(你可能会说 整形指针不是必须要指向一个整形的地址吗?  其实不然 不管是什么类型的指针变量,你只要给他赋给一个地址,她便会指向你给的地址为起点然后加上sizeof(你定义的指针变量)这块内存。

OK!!!!  最后还是强烈建议大家去看看那个公众号的文章——————————真心不错!!!!

posted @ 2023-04-26 22:16  啥都不会的灰太狼  阅读(31)  评论(0)    收藏  举报