在C语言中,若int a = 3;int * p =,如何初始化指针p指向变量a?
- 内容介绍
- 文章标签
- 相关推荐
本文共计353个文字,预计阅读时间需要2分钟。
在C语言中,当使用`const`关键字时,你需要特别注意对指针的引用。以下是对你提供代码片段的简化
c在C中,若:int *a=&b; // 假设b是一个整型变量int *p=a;
为什么以下两种声明方式的结果不同?const int *pp=p; // 不允许const int *const pp=p; // 允许
原因是:定义 const int *pp=p; 时,不允许对pp指向的内容进行修改,因此p不能是一个普通的指针。而 const int *const pp=p; 允许,因为它声明pp是一个指向const整型的const指针,这样p指向的内容可以被修改,但pp的指向不能改变。
给定的 const int *pp=p;,p 必须首先被隐式转换为 const int *,这意味着p指向的内容也被视为const,这是不允许的。但是,转换后的 const int * 是临时的,所以实际上是一个有效的临时指针,因此被允许使用。
本文共计353个文字,预计阅读时间需要2分钟。
在C语言中,当使用`const`关键字时,你需要特别注意对指针的引用。以下是对你提供代码片段的简化
c在C中,若:int *a=&b; // 假设b是一个整型变量int *p=a;
为什么以下两种声明方式的结果不同?const int *pp=p; // 不允许const int *const pp=p; // 允许
原因是:定义 const int *pp=p; 时,不允许对pp指向的内容进行修改,因此p不能是一个普通的指针。而 const int *const pp=p; 允许,因为它声明pp是一个指向const整型的const指针,这样p指向的内容可以被修改,但pp的指向不能改变。
给定的 const int *pp=p;,p 必须首先被隐式转换为 const int *,这意味着p指向的内容也被视为const,这是不允许的。但是,转换后的 const int * 是临时的,所以实际上是一个有效的临时指针,因此被允许使用。

