C语言指针笔记01
int num = 90; 定义一个整型变量num
int* ptr = # 定义一个整型指针变量ptr,指针变量ptr的类型取决于他所需要指向的变量,如这里,ptr要指向int类型变量num,所以定义为int*变量,如果是 float类型变量num,则指针需要被定义为float * ptr
*prt = num; 此处说明*ptr的值等于num的值,即num = *ptr = 90
输出方面:
输出地址格式需要用%p
printf("%p,%p,%d", &ptr,ptr,*ptr);
其中:
&ptr 输出指针变量ptr的地址
ptr 输出指针变量ptr保存的值(一个十六进制的地址,若输出采用%d,则输出一个整数)
*ptr 输出指针变量ptr保存的地址的值(相当于直接找到地址修改地址保存的值)
——————————————————————————————————————————————————
实例:
void main(){
int a = 300;
int* ptr = a;
)
错误:原因是把int赋值给了int*,int* ptr需要赋值一个地址值,需要把赋值给 ptr的值改为&a即可
void main(){
int a = 300;
float *ptr = &a;
}
错误:指针变量指的类型不匹配,float指针指向了int类型的变量的地址
void main(){
int a = 300;
int b = 400;
int* ptr = &a;
*ptr = 100;
ptr = &b;
*ptr = 200;
printf("\n a=%d,b=%d,*ptr=%d", a, b, *ptr);
}
看懂程序运行:
定义整型变量a,并赋值300
定义整型变量b,并赋值400
定义整型指针变量ptr,并把整型变量a的地址赋值给ptr
把a的值修改为100(此时由于ptr已经保存了a的地址,*ptr等同于a)
把整型变量b的地址赋值给ptr
把b的值修改为200(此时由于ptr已经保存了b的地址,*ptr等同于b)
按需输出!
C语言指针笔记01的更多相关文章
- C语言学习笔记01——C语言概述
作者:Eventi 出处:http://www.cnblogs.com/Eventi 欢迎转载,也请保留这段声明.谢谢! 1 C语言的起源 1972年,贝尔实验室的丹尼斯·里奇(Dennis Ritc ...
- c语言指针笔记
一.int a[20]1. 数组名代表数组首元素的地址,不代表数组的地址2. 对数组名取地址代表整个数组的地址.a和&a代表的数据类型不一样 a代表数组首元素的地址 &a数组类型 in ...
- JavaScript语言精粹 笔记01 语法 对象
内容比较简单,只是从头梳理一下JS的知识 语法空白标识符数字字符串语句 对象对象字面量检索更新引用原型反射枚举删除减少全局变量污染 语法 1 空白 空白可能表现为格式化字符或注释的形式.空白通常没有 ...
- C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | IT宅.com
原文:C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | IT宅.com C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | I ...
- Go语言学习笔记九: 指针
Go语言学习笔记九: 指针 指针的概念是当时学C语言时了解的.Go语言的指针感觉与C语言的没啥不同. 指针定义与使用 指针变量是保存内存地址的变量.其他变量保存的是数值,而指针变量保存的是内存地址.这 ...
- 2-Linux C语言指针与内存-学习笔记
Linux C语言指针与内存 前面我们对于: c语言的基本用法 makeFile文件的使用 main函数的详解 标准输入输出流以及错误流管道 工具与原理 指针与内存都是c语言中的要点与难点 指针 数组 ...
- go学习笔记-语言指针
语言指针 定义及使用 变量是一种使用方便的占位符,用于引用计算机内存地址.取地址符是 &,放到一个变量前使用就会返回相应变量的内存地址. 一个指针变量指向了一个值的内存地址.类似于变量和常量, ...
- C语言中的指针笔记
C语言指针 得到变量的地址 可以使用&运算符找到变量保存在内存中的位置 int x = 1; printf("x的内存地址是"%p\n",&x) %p格式 ...
- 《30天自制操作系统》笔记(01)——hello bitzhuwei’s OS!
<30天自制操作系统>笔记(01)——hello bitzhuwei's OS! 最初的OS代码 ; hello-os ; TAB=4 ORG 0x7c00 ; 指明程序的装载地址 ; 以 ...
随机推荐
- 优雅哥学 Webpack - 01 - Webpack 5 快速体验
程序员优雅哥简介:十年程序员,呆过央企外企私企,做过前端后端架构.分享vue.Java等前后端技术和架构 本文摘要:主要讲解 webpack 5 初体验.从webpack 5 初识到便写代码.优雅哥将 ...
- 弹性布局( display: flex;)
参考: https://www.cnblogs.com/hellocd/p/10443237.html
- jenkins+tomcat自动化部署
一.配置tomcat tomcat版本:tomcat-9.0.39 vim /usr/local/tomcat-9.0.39/conf/tomcat-users.xml <tomcat-user ...
- HashTable集合和练习题_计算一个字符串中每一个字符出现的次数
HashTable集合 /** * java.util.Hashtable<K,V>集合 implement Map<K,V>接口 * Hashtable:底层也是一个哈希表, ...
- 多线程与高并发(三)—— 源码解析 AQS 原理
一.前言 AQS 是一个同步框架,关于同步在操作系统(一)-- 进程同步 中对进程同步做了些概念性的介绍,我们了解到进程(线程同理,本文基于 JVM 讲解,故下文只称线程)同步的工具有很多:Mutex ...
- HMS Core音频编辑服务音源分离与空间音频渲染,助力快速进入3D音频的世界
从单声道.立体声.环绕声发展到三维声,音频回放技术的迭代演进是为了还原真实世界的声音.其中,三维声技术使用信号处理的方法对到达两耳的声音信号进行模拟,将声场还原为三维空间,更接近真实世界.凭借这个技术 ...
- 题解【洛谷 P1466 [USACO2.2]集合 Subset Sums】
题目传送门 设 \(sum=1+2+3+4+\dots+n=\dfrac{n(n+1)}{2}\). 如果 \(2\nmid sum\),则显然没有方案. 如果 \(2\mid sum\),则这两个集 ...
- EPLAN部件库共享方法
EPLAN部件库共享方法 关键词: EPLAN部件库共享 EPLAN 摘要:在使用EPLAN时经常会碰到自己电脑里的部件库和公司里其他同事的部件库存在差异,如果不是很平凡的同步所有使用的部 ...
- SpringBoot(一、快速入门)
1.SpringBoot简介 Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置, ...
- DolphinScheduler 线上 Meetup 视频回放(07.25)
上周六下午 DolphinScheduler 社区联合 Doris 社区进行了 2020 年首次线上 Meetup,各位讲师都做了非常精彩的分享,也吸引了 1900 多位技术伙伴观看. 其中 Dolp ...