首页 > 其他分享 >简单理解c语言指针

简单理解c语言指针

时间:2023-09-02 22:33:12浏览次数:31  
标签:初始化 语言 int 地址 理解 声明 指针

&p(取地址)

P

*p(间接寻址)

 

假设p指向整数型变量a,那么可以理解为p等同于a的地址。*是间接寻址运算符,对p进行操作,找到p这个地址中所对应(放的)东西。

也就是说, *p就是a。

做个比喻,将*理解成取平方,而操作数p是地址,那么p的平方就是a,如2的平方就是4。(不过这里其实p不像是常量而更像变量x,因为它可以对应不同地址,就是对应不同的值。需要注意,这里的p是等于地址而不是指向地址,可以理解成地址的很多种不同名字之一)

 

 

假设a的地址是p,取a的地址的结果就是p,和*类似,&是取址运算符,对a进行操作,找到a的地址。

也就是说, &a就是p。

 

 

赋值操作作用于相同类型的两方,所以当p是地址(指向a)时,可以把地址赋给p。

如:p = &a;      和         *p = a;

p的身份是指针,在声明时要在p前加*标识。如:int *p;

不同于*p = a;,这里是声明的需要,而不是作间接求址的操作符,所以会有int *p = &a;的写法。

这个例子是在声明时初始化,如果声明时不初始化而等之后初始化的话,代码可能会是这样:int *p; p = &a;

标签:初始化,语言,int,地址,理解,声明,指针
From: https://www.cnblogs.com/sujiangzhouzhou/p/17674316.html

相关文章

  • C语言数组(9)--- 数组名(2)
    一.导入我们上篇文章讲了一维数组的数组名,接下来我们将介绍二维数组的数组名,我们先来猜一下以下代码执行的结果是多少:#include<stdio.h>intmain(void){ intarr[3][4]; intsz=sizeof(arr); printf("%d",sz); return0;}A.3B.4C.12D.48答案:D,解析:我们之前说过二维数组......
  • 大模型和人一样需要 提高对 编程语言认知
    今天在ChatGLM2-6B的仓库里看到了这么一个issue:https://github.com/THUDM/ChatGLM2-6B/issues/122:这位兄弟说的挺好,其中有点小错误:三星Tizen架构其实不是架构,是属于arm架构,Tizen是三星的一个操作系统。由此我想到了ChatGLM2是国人开源的LLM,因此我去国内的几个大模型应用上......
  • 《C和指针》学习笔记
    C和指针学习笔记前置条件1.1配置环境下载vscode安装编译器:这里以MinGw-w64为例。下载MinGw-w64的安装包并解压。添加到系统环境编辑tasks.json(该文件负责项目的编译,如果需要同时编译多个文件,需要对该文件进行如下注释内的修改):{"tasks":[{......
  • C语言读取csv文件并保存到二维数组
     #include<stdio.h>#include<string.h>#include<time.h>#defineMAXCHAR1024#defineMAXCOUNT1000000char*mat[MAXCOUNT][9];//如果放到main里面会有长度限制使应用程序退出,放在外面作为全局变量没有限制。intmain(){clock_tstart,end;start=clo......
  • 东方博宜OJ1009 数组逆序 C语言版
    题目描述给你 n 个整数,将其逆序输出。输入第一行一个整数 n (3≤n≤100)代表数的个数。第二行 n 个整数(空格隔开)(这些数在 0∼106 之间)。输出n 个整数(空格隔开)。样例输入3175输出571来源数组问题代码 #include<stdio.h>in......
  • Go语言 Http库 注册激活用户 实践
    背景需要在公司的平台上面,批量给用户注册,并激活账号信息。主要是通过console接口进行激活和注册,所以要使用到Go语言的http库,在此记录。步骤分解console页面注册获取注册和激活接口需要的信息。通过postman验证接口。关闭服务IP注册限制(公司代码相关)。通过代码进行注册激活。恢......
  • 【转录】掌握个人财务管理:从理解记账到实践
    本文首先探讨了记账的意义以及基本的记账方法,包括如何记录收入、负债、资产和费用。之后,我们详细介绍了会计等式的重要性,让你理解在掌握个人财务管理时,这个基础概念的关键性。接着,我们深入讨论了如何践行记账的习惯,以及传统流水账的利弊。然后,我们深度解析了复式记账,这种全面而精......
  • 【Python】Python语言基础
    好久没有更新啦~~那么趁着高中信息技术的学科,就更新一下下吧(嘿嘿)坐标:ZJ输入输出输入语句:input()默认读入的变量类型为string字符串输出语句:print()输出的内容如有多个变量用逗号隔开赋值赋值符号为=赋值符号每一次赋值,都是将=后面的内容直接覆盖到前面的变量中算术......
  • C++语言学习07
    一、类型信息运算符typeid在C++中typeid可以获取数据的类型,但是需要加头文件typeinfofind/usr/include-nametypeinfo1、typeid是运算符,执行运算符函数,执行的返回值类型是type_info类类型对象2、type_info中有个name的成员函数3、type_info中还重载了==运算符,可以直接......
  • 学生信息管理系统代码分享 - C语言控制台程序
    【代码要求】   设计与实现学生信息管理系统,实现对学生信息的管理,并且学生的学号是代表该学生信息的唯一性标志。另外学生信息包括:学号、姓名、性别、班级、身份证号、出生日期、联系方式。   该系统具有以下几个功能:   1.系统界面美观、简洁,采用菜单式显示......