关于指向常量的指针(const int*)的疑问
#include <iostream>
//#include "string.h"
using namespace std;
void main()
{
//char* test1 = test("abcd");
const int i = 1;
int j = 10;
int k = 20;
const int* a = &j;//a指向j;a可变,a指向的对象不可变
cout << "a1=" << *a << endl;
a= &k;//①a指向变量k,a指向的不是常量吗,怎么非常量也可以???
cout << "a2=" << *a << endl;
k=5;//②此时a指向k,不是说a指向的对象不可变吗???
//*a=5;//③a指向的对象值不可变,编译出错,*a不就是k吗???
cout << "a3=" << *a << endl;
}
①a指向变量k,a指向的不是常量吗,怎么非常量也可以???
②此时a指向k,不是说a指向的对象不可变吗???
③a指向的对象值不可变,编译出错,*a不就是k吗???
相关推荐
深入const int *p与int * const p的区别详解(常量指针与指向常量的指针)
对于指针和常量,有以下三种形式都是正确的: 代码如下:const char * myPtr = &char_A;//指向常量的指针char * const myPtr = &char_A;//常量的指针const char * const myPtr = &char_A;//指向常量的常量指针下面依次对这三种类型进行介绍。因为*操作符是左操作符,左操作符的优先级是从右到左,对于1.常量指针(Constant Pointers) 代码如下:int * const p先看const再看* ,是p是一个常量类型的指针,不能修改这个指针的指向,但是这个指针所指向的地址上存储的值可以修改。实例1: 代码
详细分析c++ const 指针与指向const的指针
主要介绍了c++ const 指针与指向const的指针的相关资料,文中示例代码非常详细,帮助大家更好的理解和学习,感兴趣的朋友可以了解下
const用法 const int *a; int * const a;
const char* pCh; // 指向字符串常量的指针; 表示pch是一个指针,指向字符串常量。根据需要还可以指向另一个字符串。 但字符串不能被改变。 char* const pCh; // 指向字符串的常量指针; 表示pch是一个字符串常指针,该指针只能指向该字符串,不可以在让他指向另一字符串。但该字符串的内容可以变化。 const int a; //a是个整型常量 int const a; //同上 const int *a; //a是一个指向整型常量的指针(整型常量不可修改,但指针a可以) int * const a; //a是一个指向整型数的常量指针(整型常量可修改,但指针a不可以) int const *a const; //a是一个指向整型常量的常量指针(两者都不可以修改)
C语言中常量指针与指针常量区别浅析
主要介绍了C语言中常量指针与指针常量区别,有需要的朋友可以参考一下
函数指针和指针函数,const的用法,指针常量,常量指针的用法
函数指针和指针函数的区别,以及const的用法,指针常量,常量指针的用法


