const int *P 、int const *p 、int *const P 详解
来源:互联网 发布:手机淘宝怎么修改分类 编辑:程序博客网 时间:2024/05/22 00:40
1、const int *P 、int const *p这两个是一样的功能,以例子来进行说明
例1:#include<stdio.h>
int main()
{
int a=5;
int b=8;
const int *p;
p=&a;
a=10; //假设 我们把这里改为 p=&b;就能顺利执行程序
printf("a=%d,p=%d\n",a,p); //改为 p=&b后;这里输出a=5和b的地址
printf("&a=%d,*p=%d\n",&a,*p); //改为 p=&b后;这里输出a的地址和p=8(b的值)
return 0;
} 编译这个程序会报错
point.c: In function ‘main’:
point.c:18: error: stray ‘\357’ in program
point.c:18: error: stray ‘\274’ in program
point.c:18: error: stray ‘\233’ in program
point.c:19: error: expected ‘;’ before ‘printf’ 为什么呢?
是由于 P是指针变量,里面装载着一个地址,P所指向的量是该地址里的数据(即*p);
const int *P 、int const *p 表示 地址(p里面的内容)可变,该地址里的数据(即*p)不能变。
2、int *const P
例2:#include<stdio.h>
int main()
{
int a=5;
int b=8;
int *const p=&a;
a=10;
printf("a=%d,p=%d\n",a,p);
printf("&a=%d,*p=%d\n",&a,*p);
return 0;
} 编译报错,将 “ a=10;” 改为 “p=&b;” 编译还是报错 ;这就充分说明 int *const P 定义的指针变量在经过第一次初始化(即第一次赋值)后就不能再进行任何的改变。
- 详解const int *p,int*const p,int const *p
- 详解const int *p,int*const p,int const *p
- const int *P 、int const *p 、int *const P 详解
- const int *p,const * int p,int const *p
- const int * p,int const * p,int * const p
- const int *p,const * int p,int const *p
- const int *p,const * int p,int const *p
- const int *p,const * int p,int const *p
- const int *p,const * int p,int const *p
- const int *p,const * int p,int const *p
- const int *p、int * const p、int const *p
- const int *p,const * int p,int const *p
- const int *p,const * int p,int const *p
- const int *p,const * int p,int const *p
- const int *p,const * int p,int const *p
- 详解const int* p;int const *p;int *const p;const int *
- const int* p和int* const p
- const int *p,int *const p区别
- Java基础教程(6)运算符
- 关于mysql 简单的查询语句 以及常用函数的 总结
- 【感受】逢考必挂
- ECMAScript6笔记:Promise对象
- Java基础学习总结(82)——Java泛型实例教程
- const int *P 、int const *p 、int *const P 详解
- Cocos2D-X学习9:播放音乐
- LCS - 输出字符串
- 第四章 面向对象
- HDU - 1709 The Balance(母函数)
- Android MVP几种模式分析和比较
- Android添加菜单选项
- java ResultSet中时间(带小时分钟)读取
- Linux开机流程及init配置文件