V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
6god
V2EX  ›  问与答

cpp 指针入门求指教

  •  
  •   6god · 2015-11-03 00:43:42 +08:00 · 2014 次点击
    这是一个创建于 3309 天前的主题,其中的信息可能已经有所发展或是发生改变。

    void function(void params) { //params 这个是指针把。。
    int pointer; //肯定是指针
    pointer = (int
    ) params; //指针=指针?
    int total = *pointer; //最迷茫的一点, 把指针赋值给一个 int 类型?

    请问下。。。这里面 哪些是指针 哪些不是呢?
    
    8 条回复    2015-11-03 10:54:02 +08:00
    Hello1995
        1
    Hello1995  
       2015-11-03 00:58:05 +08:00 via Android
    ```
    void * function(void * params) { //params 这个是指针
    int * pointer; //肯定是指针
    pointer = (int*) params; //指针,强制类型转换
    int total = *pointer; // total 不是指针,是一个整型的数据,*pointer 的意思是,取出指针 pointer 指向的值。
    ```
    supman
        2
    supman  
       2015-11-03 01:04:15 +08:00 via iPad
    @Hello1995 第三个 强制类型转换? 指针 转换成指针?
    skydiver
        3
    skydiver  
       2015-11-03 02:50:02 +08:00 via Android
    帖子里怎么星号都没了
    canautumn
        4
    canautumn  
       2015-11-03 03:35:16 +08:00
    一楼正解…星号给解析成 markdown 里的斜体了。
    judyApple
        5
    judyApple  
       2015-11-03 05:44:10 +08:00
    请问 void* params 是什么?是函数指针?函数后面不是有括号么?比如 void(*params)(int);
    alloyapple
        6
    alloyapple  
       2015-11-03 08:40:02 +08:00   ❤️ 1
    @judyApple void* params 是一个指针,不知道类型的指针,你可以把它强制转换成任何类型的指针。推荐再看看 cpp 里面的 static_cast, const_cast, dynamic_cast, reinterpret_cast 。
    yuriko
        7
    yuriko  
       2015-11-03 08:47:28 +08:00
    所有(绝大多数)数据都是放内存上的,系统给内存的每一行标号来进行存取,指针就是这个标号,所以本质上还是值数据,因此本质上和一般数据并没多大区别。
    代码语言将两者进行语义区分,目的是为了进行一些简易操作(比如带类型的指针+1 的时候会直接移动类型长度)和规避一些混用错误(然而还是错误爆炸),才有了指针
    Hello1995
        8
    Hello1995  
       2015-11-03 10:54:02 +08:00 via Android
    @supman void 指针强制转化为 int 指针
    @skydiver Markdown 语法: *斜体* 。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2747 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 11:38 · PVG 19:38 · LAX 03:38 · JFK 06:38
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.