您现在的位置是:首页 >综合 > 2022-05-23 10:25:07 来源:

c语言指针为什么难学(c语言指针)

导读 大家好,精选小编来为大家解答以上问题。c语言指针为什么难学,c语言指针很多人还不知道,现在让我们一起来看看吧!1、什么是指针。第一,

大家好,精选小编来为大家解答以上问题。c语言指针为什么难学,c语言指针很多人还不知道,现在让我们一起来看看吧!

1、 什么是指针。第一,指针是一个变量,指针的值是另一个变量的地址。

2、 例如:

3、 b是整数指针变量,其值是整数变量A的地址;

4、 指针的类型。这里有一个小技巧:

5、 (int* ptr的指针类型是int *

6、 (2)2)char* ptr的指针类型是char *

7、 (3)3)int** ptr的指针类型是int * *

8、 (4)int(* ptr)[4]的指针类型是int(*)[4]

9、 相信朋友们已经发现了规律:从指针声明中去掉指针名,就是指针的指针类型。

10、 指针指向的类型。还有一个小窍门:

11、 (int * ptr的指针所指向的类型是int。

12、 (2)2)char * ptr的指针指向的类型是char

13、 (3)3)int* * ptr的指针指向的类型是int *

14、 (4)指向int (* ptr) [4]的指针指向int()[4]类型

15、 从指针声明中去掉左边带*的指针名,即指针所指向的类型。

16、 常数和指针。一般来说,有几种情况:

17、 (1)const int* p等价于int const *p p,指针指向的内容不能修改。

18、 (int * const p指针的地址是不能修改的,需要在声明的时候初始化。

19、 (3)const int* const p等价于int const * const p,内容和指针不能修改。

20、 提示:看const的右边。如果是指针名,地址不能修改;如果是*指针名或者const在前,内容不能修改。

21、 运算符和*运算符。是一个寻址操作符,它的结果是一个指针(地址)。*是一个间接运算符,它的结果就是变量指向的内容。

22、 空指针和通配符指针。空指针意味着指向空的或者不指向任何东西。(注意:声明但初始化的指针不为空,即声明的指针有地址。)通配符指针不为空,一般指向当前程序的未知地址或不可访问的地址。

23、 数组和指针。当数组被命名为右值时,它是第一个元素的地址。

24、 (1)数组[0]等于*数组。

25、 (2)数组[1]等于*(数组1)

26、 (3)数组[2]等于*(数组2)

27、 (4)数组[3]等于*(数组3)

28、 其中数组1表示,它指向数组的下一个相邻内存块。

29、 和函数指针。通常,函数参数作为形式参数传递,形式参数通过值传递。即形参是实参的副本,实参的参与形参是指值相同,但指向的内存块(地址)不同。

30、 示例:

31、 这种情况可以通过传入指针来避免。

32、 以及结构类和指针。您可以通过“-”箭头运算符访问结构成员,通过“.”访问类成员和方法点运算符。

本文到此结束,希望对大家有所帮助。