小编Dev*_*vat的帖子

指向const int但仍然修改数据的指针

#include<stdio.h>
#include<stdlib.h>
int *func(int *);
int main(void)
{
        int i,size;
        const int *arr=func(&size);
        for(i=0;i<size;i++)
        {
                printf("Enter a[%d] : ",i);
                scanf("%d",&arr[i]);
        }

        for(i=0;i<size;i++)
        {
                printf("%d\t",arr[i]);
        }
        return 0;
}
int *func(int *psize)
{
        int *p;
        printf("Enter the size: ");
        scanf("%d",psize);

        p=(int *)malloc(*psize *sizeof(int));
        return p;
}
Run Code Online (Sandbox Code Playgroud)

输入大小:3

输入[0]:1

输入[1]:2

输入[2]:3

1 2 3

  • 这里,在这段代码中,我使用const关键字不修改'arr'指针指向的数据.
  • 如果我使用const关键字,为什么它给我输出?

c malloc pointers const

0
推荐指数
1
解决办法
119
查看次数

标签 统计

c ×1

const ×1

malloc ×1

pointers ×1