c语言指针的指针初始化,c语言指针的指针初始化是什么

kodinid 7 0

大家好,今天小编关注到一个比较意思的话题,就是关于c语言指针的指针初始化问题,于是小编就整理了5个相关介绍c语言指针的指针初始化的解答,让一起看看吧。

  1. c语言中指针的使用方法?
  2. c语言中为什么栈的初始化时候栈顶指针要指向-1?
  3. 为什么常量指针可以不初始化?
  4. C++的指针和C的指针有什么区别?
  5. 为什么C语言指针初始化左边是值,右边是地址?

c语言中指针的使用方法

C语言中要正确使用指针,首先要理解指针的概念,它其它也是一个变量,是指向某个地址的变量,在使用指针之前要声明这个变量,然后要初始化它,指针的初始化一般有两种,一个是指向一个已经确定的空间,另一种是开辟新的空间,然后再指向它,可以使用malloc函数,但记得创建空间了后面一定要释放。

c语言中为什么栈的初始化时候栈顶指针要指向-1?

这种初始化是用于线性栈的,也就是用一个数组来组成栈,栈顶指针值为当前栈顶元素下标值。当有数据入栈时,会先执行栈顶指针自加。初始化为空栈,规定空栈的时候指向-1,这样在有第一个元素入栈的时候栈顶指针就可以通过自加指向0元素,从而避免其它判断

c语言指针的指针初始化,c语言指针的指针初始化是什么-第1张图片-安济编程网
图片来源网络,侵删)

为什么常量指针可以不初始化?

不是的。

常量指针必须初始化,常量指针必须在定义时就初始化,否则系统是会报错的。

常量指针的指向地址是不允许进行修改的,如不在定义时初始化,系统随便提供的一个指针地址对于程序员来说没有占有感,就像用的个二手指针一样。

c语言指针的指针初始化,c语言指针的指针初始化是什么-第2张图片-安济编程网
(图片来源网络,侵删)

譬如:

int *const p; // 错误,系统报错。

int const *p; // 编译通过。

c语言指针的指针初始化,c语言指针的指针初始化是什么-第3张图片-安济编程网
(图片来源网络,侵删)

C++的指针和C的指针有什么区别

1.引用必须被初始化,指针不必。

2.引用初始化以后不能被改变,指针可以改变所指的对象

3.不存在指向空值的引用,但是存在指向空值的指针。C++中尽量用引用。个人觉得所有的引用都可以用指针,但指针比引用容易出错。引用当然更直观更直接,做参数时,如果在函数内不刻意要用指针的那些副作用(如越界访问,动态定向什么的),引用可以代替指针

为什么C语言指针初始化左边是值,右边是地址?

指针变量可以理解为一个存储地址信息的变量,指针初始化就是给指针变量赋一个值,就是你说的左边是值,只不过这个值跟其他类型(比如:int数值型,double浮点型)不同,是一个地址字符串。利用“*”取值运算符可以获取存储在该地址的信息。

C语言中的指针,其实也是一种变量,只不过这种变量稍微有点特殊,指针变量存储的值是地址,普通变量比如int变量存储的值就是对应的int值。

对于变量初始化或者赋值来说,等号"="右边取得都是该变量存储的值,针对指针变量来说其存储的值是地址。示例代码如下:

关于更多的C指针知识推荐可以参考下C语言经典书《C程序设计语言》和《C和指针》。

到此,以上就是小编对于c语言指针的指针初始化的问题就介绍到这了,希望介绍关于c语言指针的指针初始化的5点解答对大家有用。

标签: 指针 初始化 变量