C语言错误 指针的类型错误

//指针的类型错误
#include<stdio.h>
#include<stdlib.h>
#include<string.h>

//用const来限制形参的指向不可以修改,优化代码的安全性
int Getnum(int ** const pin/*in*/){
    return 1;
}

//指针的类型
//指针都是有自己的类型的 例如 int *,int **
//指针的类型本质上是对指针所指向的内存空间一种描述
//一级指针,二级指针只是对指针本身的一种描述
//请不要混淆指针类型与多级指针


void main(){
    int buf[10] = { 0 };
    
    Getnum(&buf);
    // warning C4047: “函数”:“int **const ”与“int (*)[10]”的间接级别不同

    //分析 buf的类型是int *;一般认为对一级指针取地址是二级指针,这种想法不完全正确
    //数组就是个特殊存在,这里 &buf 的;类型定义是 int (*P)[10],类型是P;
    //注意:int (*)[10]是定义数组变量的,不是数组类型

    //所以这种写法是错误的  
    system("pause");
}

 

posted on 2016-06-13 15:13  寒魔影  阅读(539)  评论(0编辑  收藏  举报

导航