• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

c语言指针用法有哪些

c语言 搞代码 4年前 (2022-01-09) 27次浏览 已收录 0个评论

c语言指针用法:1、指针变量与普通变量一样默认值不确定,一般初始化为NULL;2、指针变量的用法与普通变量不同,一般以p结尾加以区分;3、指针变量的类型决定了通过指针变量访问内存时访问几个字节。

c语言指针用法:

一,指针定义:

指针变量的取值范围取值0~4G,是一种数据类型(无符号整数,代表了内存编号)。它可以用来定义变量(与int、long一样),与int、long不同的它存储整数代表了内存的编号,通过这个变量可以访问对应编号的内存。

二,指针的作用

1、堆内存无法取名字(无法使用标识符与堆内存建立联系),必须配合指针。

2、函数之间的参数是值传递(内存拷贝),使用指针可以优化参数的传递效率(需要对变量进行保护)。因为C语言采用的是值传递(内存拷贝),会随着变量字节数的增加而降低运行效率而传递变量的地址永远只拷贝4或8字节。

void func(const int* p);但使用指针变量的值可能会被修改,可以配合const。

3、函数之间是相互独立的,有时协同配合需要共享变量(全局变量过多会造成命名冲突,不会被释放浪费内存),函数之间传递变量的地址可以达到共享变量的效果。

三,指针的用法:

定义:类型* 变量名_p;

1、指针变量与普通变量一样默认值不确定,一般初始化为NULL。

2、指针变量的用法与普通变量不同,一般以p结尾加以区分。

3、指针变量的类型决定了通过指针变量访问内存时访问几个字节。

4、指针变量不能连续定义(一个*只能定义出一个指针变量):

int* p1,p2; // p是指针,p2是int类型变量

int *p1,*p2; // p1和p2都是指针变量

赋值:指针变量 = 内存编号。 变量名_p = 地址;

内存编号要能够访问,如果编号错误可能会造成段错误。void*可以与任意类型指针进行自动转换(C++中不行)。要保障地址与物理内存有对应关系(映射过),否则有段错误。

 int* p = malloc(4);
 int* p = # // 引用内存

访问:*指针变量 //解引用—-访问指针变量

根据指针变量中存储的内存编号去访问对应的内存。如果之前赋值的内存编号有误,这个步骤会出现段错误。访问的字节由指针类型决定。 int* p = #

本文来源gaodai.ma#com搞##代!^码@网3

*p <=> num;

5,指针运算

指针变量中存储的就是整数,因此为整型数据能使用的运算符指针变量基本都能使用

,但不是所有运算都有意义。

指针+整数 = 指针+宽度*整数

指针-整数 = 指针-宽度*整数 // 指针进行前后移动

指针-指针 = (指针-指针)/宽度 // 两个指针之间相隔多少个元素

指针 >、<、<=、>= 指针 可以判断两个谁在前谁在后。

6,数组与指针

.数组名就是个特殊的地址,也能当指针使用,数组名是个常量(数组名与数组第一个元素的首地址是对应关系,普通指针是指向关系)。数组名可以使用指针的解引用,而指针变量也可以使用数组的[];arr[i] <=> *(arr+i)。数组当函数的参数就脱变成了指针变量,长度丢失,安全性也变小void func(int * const arr,size_t len);

7,指针的高级使用

数组指针与指针数组:

(1).数组指针(指针):专门用来指向数组的指针。

int arr[10];
int (*p)[10] = arr;
int* p = &num;

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:c语言指针用法有哪些

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址