【C语言学习笔记】指针
用来存放一个变量地址的变量就叫指针变量。指针变量也是有类型约束的,一般什么类型的指针指向什么类型的变量。
指针之所以叫变量,是因为它里面所存放的变量的地址也是不断变化的,指针是可以移动的。
定义格式:
类型名 *指针变量名 eg:int *pi;
指针的作用都是一样的,都是用来存放地址的,为什么还要区分类型,因为指针变量只能存放特定定义类型的变量。
让指针存放一个变量的地址:
pi=&a;
&叫取址符,*叫指针运算符。
还有一种能存放指针变量地址的对象,他就是指向指针的指针。eg:int **p ; p=&s
给指针变量赋值:
1、通过求地址运算符(&)获得地址值
int k=1,*q,*p;
赋值语句为:q=&k;则把k的地址赋予了q,可以说变量q指向了变量k
注意:1、&只能用于变量和数组,不可以用于表达式、常量和被说明为register的变量,因此:q=&k+1 q=&(k+1)都是错误的。
2、&必须放在运算对象的左边,而且运算对象的类型必须与指针变量的类型相同。
2、通过指针变量获得地址值
可以通过赋值运算,把一个指针变量中的地址赋予另一个指针变量,从而使这两个指针指向同一个地址。
int k,*q,*p; q=&k ;p=q;
也就是说指针变量q和p都指向了变量k.
注意:当进行赋值运算时,赋值号两边的指针变量的基类型必须相同。
3、给指针变量赋空值
除了给指针变量赋地址值外,还可以给指针变量赋NULL值 。
eg:p=NULL;
当之真理上述语句之后,称p为空指针,NULL的代码值为0,等价于p='\0';p=0;
注意:p并不是指向地址为0的存储单元,而是一个有确定的值“空” int *p ; int *p=null;
对指针变量的操作:
1、通过指针来引用一个存储单元
C语言提供了一个称作“间接访问运算符”,的单目运算符
【C语言学习笔记】指针的更多相关文章
- c语言学习笔记 - 指针和字符串
前面学习了字符串是一种字符数组,又知道了指针变量和数组的关系,这里来看一下指针和字符串的关系. #include <stdio.h> int main(void){ char str = ...
- c语言学习笔记 - 指针和数组
结合内存存储数据的机制,c语言里指针的出现和使用也就不奇怪了,如果先学了内存的一些知识,以及程序运行机制,到了c指针这块就会清晰很多. #include <stdio.h> int mai ...
- c语言学习笔记.指针.
指针: 一个变量,其值为另一个变量的地址,即,内存位置的直接地址. 声明: int *ptr; /* 一个整型的指针,指针指向的类型是整型 */ double *ptr; /* 一个 double 型 ...
- C语言学习笔记--指针阅读技巧
1. 指针阅读技巧:右左法则 (1)从最里层的圆括号中未定义的标示符看起 (2)首先往右看,再往左看 (3)遇到圆括号或方括号时可以确定部分类型,并调转方向 (4)重复 2.3 步骤,直到阅读结束 注 ...
- C语言学习笔记--指针和数组的关系
1.数组的本质 (1)数组是一段连续的内存空间 (2)数组的空间大小:sizeof(array_type)*array_size; (3)数组名可看做指向数组第一个元素的常量指针 (4)数组声明时编译 ...
- C语言学习笔记--指针概念
指针也是一种变量,占有内存空间,用来保存内存地址,在32位系统中指针的占用的内存大小为4个字节 1.*号的意义 (1)在指针声明时,*号表示所声明的变量为指针 (2)在指针使用时,*号表示取指针所指向 ...
- C语言学习笔记--指针与字符串
字符类型 char(character)是一种整数,也是一种特殊的类型:字符.这是因为 ① 用单引号表示的字符字符字面量:‘a’,'1' ②‘’也是一个字符 ③printf和scanf里用%c来输入. ...
- Go语言学习笔记九: 指针
Go语言学习笔记九: 指针 指针的概念是当时学C语言时了解的.Go语言的指针感觉与C语言的没啥不同. 指针定义与使用 指针变量是保存内存地址的变量.其他变量保存的是数值,而指针变量保存的是内存地址.这 ...
- GO语言学习笔记(一)
GO语言学习笔记 1.数组切片slice:可动态增长的数组 2.错误处理流程关键字:defer panic recover 3.变量的初始化:以下效果一样 `var a int = 10` `var ...
- Go语言学习笔记十: 结构体
Go语言学习笔记十: 结构体 Go语言的结构体语法和C语言类似.而结构体这个概念就类似高级语言Java中的类. 结构体定义 结构体有两个关键字type和struct,中间夹着一个结构体名称.大括号里面 ...
随机推荐
- MTSC2019-腾讯WeTest独家揭秘移动游戏测试和质量保障 QA 黑科技
WeTest 导读 TesterHome 联合腾讯 WeTest 出品 MTSC2019 重磅游戏测试 Topic ,首次公开揭秘腾讯亿级用户游戏背后的质量保障 QA 黑科技. 2019 年,中国游戏 ...
- 在javascript中如何实现使小数保留两位精度而整数结果原样输出
Math.round(num*100)/100
- i春秋——“百度杯”CTF比赛 九月场——123(Apache解析pht,phtml,php3,phps等 php别名)
网页源码提示用户信息在user.php中,直接访问是不会有显示的,于是查找相应的备份文件,vim交换文件等,最后发现/user.php.bak 用burp采用如下配置开始爆破 最后爆破出两个账号 登录 ...
- Android 9.0网络权限适配
在做Android开发时,使用华为的p20和平板(均为Android 9.0)测试时,发现不能使用WIFI网络,一番郁闷纠结查找后 直接上方法: 在res文件夹下创建xml文件夹,在xml里面创建文件 ...
- Java只有值传递(Java值传递还是引用传递?)
转载请注明原文地址:https://www.cnblogs.com/ygj0930/p/10830521.html 一:区分Java数据类型.变量类型 Java数据类型分两种:基本数据类型.引用类型. ...
- django 权限设置 左侧菜单点击显示,面包屑
1.左侧菜单点击显示 就是在点击的时候保留点击的功能 方法. 1.加入新的字段,pid来判断 class Permission(models.Model): """ 权限 ...
- linux虚拟机获取不到ip的解决方法 --
问题描述: 在win10操作系统上,安装了centos7 虚拟机,安装后,用wifi网络可以获取ip,但是切换到手机热点或有线网络就获取不到ip 解决办法: 按照一般的修改ONBOOT =yes, 然 ...
- (二)STM32开发例程
1控制LED和继电器 除了 PA11和PA12其他都可以 void setup() { pinMode(PC13, OUTPUT); pinMode(PC14, OUTPUT); pinMode(PC ...
- IIS添加MIME类型.woff/.svg/.woff2/.eot/.otf.ttf
IIS添加MIME类型: 文件扩展名 MIME类型 .svg image/svg+xml.woff application/x-font-woff.woff2 application/x- ...
- 请用js写一个函数,实现获取浏览器url中查询字符串中的参数并返回一个数组
<script> console.log(getUrlArr()); function getUrlArr() { var arr = []; var url = "http:/ ...