广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C语言之初识指针
  • 953
分享到

C语言之初识指针

2024-04-02 19:04:59 953人浏览 八月长安
摘要

指针是什么? 那到底什么是指针呢,其实指针和之前学习的变量基本相似,不过变量里面放的是一些值,而指针里面放的是它所指的地方的地址。在声明一个变量是,计算机就会为该变量预留一个位置,而

指针是什么?

那到底什么是指针呢,其实指针和之前学习的变量基本相似,不过变量里面放的是一些值,而指针里面放的是它所指的地方的地址。在声明一个变量是,计算机就会为该变量预留一个位置,而指针所指☞的就是那个位置。

举个例子:

int a = 10;//设置一个变量a的值为10

int *p = &a;//p这个指针里面就放的是a的地址

而&这个符号,就是取地址符,就像我们在使用scanf函数时  scanf("%d",&a); 这个a前面的&是一个意思,就是获取到某个变量的地址。

而当你创建了一个指针是,你就要给他赋地址,否则的话它就会像那种鼠标一样在硬盘上乱找,就会随机找个地址,所以我们在创建了指针时,就一定要给他去给他赋一个位置。

指针的基础:

如何创建一个指针函数呢?

int p; 这是我们之前就知道的,创建一个整形变量p,而int *p; 就是设置一个指针p;关键就是在于中间的 *。所以我们在创建指针变量时,一定不要忘记 *;

指针的赋值:

可以在创建指针的时候就赋值像这样:int *p = &a;  也可以在创建了之后单独赋值像这样: int *p;   p = &a;   两种方法都一样,没有太大的区别,只不过一个一行代码,一个两行代码,如果我们之前已经创建了变量,那我们还是在创建指针的时候就直接给他赋值,以免后面忘了,对自己后续的程序发生影响。

那指针到底能干什么呢?


#include <stdio.h>
 
int main()
{
    int a = 10;
    int *p = &a;
    printf("a的地址为%p",&a);//这是直接输出a的地址
    printf("a的地址为%p",p);//只是输出p的指针所指的地址
    printf("a的值为%d",*p);//输出p的指针所指的地址中变量的值
 
    return 0;
}

通过这3个输出函数我们可以知道,前两个输出的都是a的地址,而第三个输出的则是a变量里的值。

所以我们可以理解为 *p 就是 a 这个变量的值,这就是最通俗易懂的理解了。

并且在输出 p 时也就是输出 a 的地址时,也是有不同的输出方式的,最基础的就是

  • %lu 是十进制的方式输出;
  • %p是以十六进制的方式输出;

之前说到 *p 可以看作是它所指的 a 变量的值,所以它也是可以再重新被赋值的,当然它的赋值不是给指针函数赋值,看似是在给指针赋值,其实改变的还是它所指的函数的值;

像这样


int a,*p;
a = 10;
p = &a;
*p = 20;
printf("a = %d",*p);

这个函数所输出的值就会为 20 ;因为指针是之间在你的地址上给你改变,所以说指针的改变相比较之前的函数就会方便很多,比如我们在学习函数的时候,会将值从主函数传到其他的函数中去做计算,但是传回来时就很麻烦,因为它一次只能传回来一个值,但是指针就不一样了,它不需要将值传回来,直接时实时将它所指的值进行改变;

像接下来这个例子,我们之前也都用函数的方式写过;


#include <stdio.h>
 
void swap(int* p, int* q)
{
	int temp;
	temp = *p;
	*p = *q;
	*q = temp;
 
}
int main()
{
	int a = 10, b = 20;
	swap(&a, &b);
	printf("a=%d  b=%d",a,b);
 
	return 0;
}

这个函数最后输出的值为

可以看到,输出的值已经发生了交换,这就是指针的强大之处吧;

可以更简单的来解决我们之前遇到的问题,所以说,学好指针是学好C语言的基础!

到此这篇关于C语言之初识指针的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: C语言之初识指针

本文链接: https://www.lsjlt.com/news/159918.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C语言之初识指针
    指针是什么? 那到底什么是指针呢,其实指针和之前学习的变量基本相似,不过变量里面放的是一些值,而指针里面放的是它所指的地方的地址。在声明一个变量是,计算机就会为该变量预留一个位置,而...
    99+
    2022-11-12
  • C语言入门篇--初识指针和指针变量
    1.指针 指针就是地址(即一个数据)。 2.指针变量 2.1概念 (1)指针变量是变量,是变量在内存中就会开辟空间,会有自己对应的的地址,有自己的变量大小。 (2)指针变量里放的内容...
    99+
    2022-11-12
  • C语言中的指针 初阶
    目录1.指针是什么2.指针和指针类型3.野指针3.1野指针成因3.2如何规避野指针4.指针的运算4.1指针±整数4.2指针-指针4.3指针的关系运算5.指针和数组6.二级指针7.指针...
    99+
    2022-11-12
  • 【C语言初阶】指针篇—下
    目录 4. 指针运算4.1 指针+-整数4.2 指针-指针4.3 指针的关系运算 5. 指针和数组6. 二级指针7. 指针数组 C语言初阶—指针上 点击跳转 4. 指针运算 指针...
    99+
    2023-09-01
    c语言 算法 开发语言 指针
  • C语言学习之指针知识总结
    目录一、地址二、指针与指针变量三、指针的作用四、初学指针时常见的错误五、通过调用函数修改主调函数中的值六、指针与一维数组七、使用函数操作一维数组八、指针变量所占字节数九、静态数组的缺...
    99+
    2022-11-13
  • C语言指针详解之野指针
    目录指针是什么?怎么表示?什么是指针变量?指针类型又是什么?指针类型存在的意义野指针是什么?野指针产生的原因一、 指针未初始化二、 指针越界访问如何避免野指针(野狗)的出现呢?指针运...
    99+
    2022-11-12
  • C语言指针之必须要掌握的指针基础知识
    目录一、指针概述指针的创建指针的大小如何使用指针二级指针二、野指针形成野指针的原因如何规避野指针三、指针的基本运算指针± 整数指针-指针四、指针和数组五、指针数组总结一、指针概述 指...
    99+
    2022-11-12
  • C语言指针如何初始化
    C语言指针可以通过以下几种方式进行初始化:1. 直接赋值给另一个指针:可以通过将一个指针的值直接赋值给另一个指针来进行初始化。例如:...
    99+
    2023-08-18
    C语言
  • C 语言基础之初识 C 语言常量
    目录1、字面常量2、const修饰的常变量3、#define定义的标识符常量(也叫预处理)4、枚举常量C语言中的常量分为以下几种: 字面常量 const修饰的常变量...
    99+
    2022-11-12
  • C语言中的初阶指针详解
    目录1.指针是什么2.指针和指针类型3.野指针3.1野指针成因3.2如何规避野指针4.指针的运算4.1指针±整数4.2指针-指针4.3指针的关系运算5.指针和数组6.二级指针7.指针...
    99+
    2022-11-12
  • C语言中的指针新手初阶指南
    目录1.指针是什么2.指针和指针类型3.野指针3.1野指针成因3.2如何规避野指针4.指针的运算4.1指针±整数4.2指针-指针4.3指针的关系运算5.指针和数组6.二级指针7.指针...
    99+
    2022-11-12
  • C语言进阶学习之指针
    目录1.指针概念回顾2.字符指针3.数组指针和指针数组3.1数组指针的含义3.2&数组名vs数组名3.3数组指针4.数组传参和指针传参4.1一维数组传参4.2二维数组传参4....
    99+
    2022-11-12
  • C语言玩转指针之指针的高阶玩法
    目录前言一、字符指针二、指针数组和数组指针1.指针数组2.数组指针2.1.数组指针是什么?2.2.&数组名和数组名的区别2.3.数组指针的使用三、数组参数与指针参数1.一维数...
    99+
    2022-11-12
  • C语言修炼之路初识指针阴阳窍 地址还归大道真上篇
    目录(壹) 敢问指针为何物 1.1 指针的概念1.2 指针的背后(贰) 指针和指针类2.1 指针的类型2.2 指...
    99+
    2022-11-13
  • C语言修炼之路初识指针阴阳窍 地址还归大道真下篇
    目录(壹) 行经旅途遇猛虎--“野指针”1.1野指针成因1.指针未初始化2.指针越界访问3. 指针指向的空间释放1.2 巧法规避...
    99+
    2022-11-13
  • C语言小知识之为什么要使用指针详析
    刚开始学习C语言的时候,感觉最难理解的就是指针,什么指针变量,变量指针,指向指针的变量,指向变量的指针?一堆概念,搞得人云里雾里的,今天不讨论这些概念的问题,从最底层来分析C语言中为...
    99+
    2022-11-12
  • C语言智能指针之weak_ptr浅析
    目录前言使用环境测试过程现象分析总结前言 weak_ptr这个指针天生一副“小弟”的模样,也是在C++11的时候引入的标准库,它的出现完全是为了弥补它老大shared_ptr天生有缺...
    99+
    2022-11-12
  • C语言基础知识点指针的使用
    目录一、指针的作用二、地址与指针三、指针变量四、数组与指针五、指针自加自减运算六、指向指针的指针七、指针变量作为函数形参八、函数指针九、函数指针数组十、指针的应用场景一、指针的作用 ...
    99+
    2022-11-13
  • C语言指针详解
    目录前言:复杂类型说明一、细说指针1.指针的类型2.指针所指向的类型3.指针的值----或者叫指针所指向的内存区或地址4 指针本身所占据的内存区二、指针的算术运算三、运算符&...
    99+
    2022-11-12
  • 详谈C语言指针
    #include<stdio.h> int main() { int a = 10; int b = 20; int* p = &a;//*定义指针变量...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作