C语言 指针理解
1、指针
指针全称是指针变量,其实质是C语言的一种变量。这种变量比较特殊,通常他的值会被赋值为某个变量的地址值(p = &a),然后我们可以使用 *p 这样的方式去间接访问p所指向的那个变量。
2、为什么需要指针?
指针存在的目的就是间接访问。有了指针之后,我们访问变量a不必只通过a这个变量名来访问。而可以通过p = &a; *p = xxx;这样的方式来间接访问变量a。
3、指针的定义和初始化
指针既然是一种变量,那么肯定可以定义,也可以初始化
第一种:先定义再赋值
int *p; //定义指针变量p
p = &a; //给p赋值
第二种:定义的同时 初始化
int *p = &a; //效果等同于上边的先定义再赋值 如果前边没有int 只有 *p = &a;这样是错误的
4、int *p;
int* p;
int * p;
以上三种定义方式都对。
5、指针定义的两种理解方法
int *p;
第一种:首先看到p,这个是变量名;其次,p前边有个*,说明这个变量是一个指针变量;最后, *p前边有一个int,说明这个指针变量p所指向的是一个int型数据。
第二种:首先看到p,这个是变量名;其次看到p前边的int *,把int *作为一个整体来理解,int * 是一种类型(复合类型),该类型表示一种指向int型数据的指针。
5、实例
int main()
{
int a = 23;
int *p; //定义一个int型的指针变量p
p = &a; //将变量a的地址赋给p;
*p = 111; //*p 代表指针变量p所指向的那个变量,在这里也就是变量a; 也就是a = 111;
printf("a = %d\n",a);
return 0;
}
运行结果是 a=111;
C语言 指针理解的更多相关文章
- go语言指针理解
- 深入理解C语言 - 指针使用的常见错误
在C语言中,指针的重要性不言而喻,但在很多时候指针又被认为是一把双刃剑.一方面,指针是构建数据结构和操作内存的精确而高效的工具.另一方面,它们又很容易误用,从而产生不可预知的软件bug.下面总结一下指 ...
- 对C语言指针的理解
一个小程序引发对于C语言指针的思考: #include <bits/stdc++.h> using namespace std; void my_swap (int* a,int* b) ...
- 深入理解C语言 - 指针详解
一.什么是指针 C语言里,变量存放在内存中,而内存其实就是一组有序字节组成的数组,每个字节有唯一的内存地址.CPU 通过内存寻址对存储在内存中的某个指定数据对象的地址进行定位.这里,数据对象是指存储在 ...
- C语言指针转换为intptr_t类型
1.前言 今天在看代码时,发现将之一个指针赋值给一个intptr_t类型的变量.由于之前没有见过intptr_t这样数据类型,凭感觉认为intptr_t是int类型的指针.感觉很奇怪,为何要将一个指针 ...
- [转]C语言指针学习经验总结浅谈
指针是C语言的难点和重点,但指针也是C语言的灵魂 . 这篇C语言指针学习经验总结主要是我入职以来学习C指针过程中的点滴记录.文档里面就不重复书上说得很清楚的概念性东西,只把一些说得不清楚或理解起来比较 ...
- 不可或缺 Windows Native (7) - C 语言: 指针
[源码下载] 不可或缺 Windows Native (7) - C 语言: 指针 作者:webabcd 介绍不可或缺 Windows Native 之 C 语言 指针 示例cPointer.h #i ...
- [c++]this指针理解
#include <iostream> using namespace std; /** * this 指针理解 */ class A{ int i; public: void hello ...
- (转载)c语言指针学习
前言 近期俄罗斯的陨石.四月的血月.五月北京的飞雪以及天朝各种血腥和混乱,给人一种不详的预感.佛祖说的末法时期,五浊恶世 ,十恶之世,人再无心法约束,道德沦丧,和现在正好吻合.尤其是在天朝,空气,水, ...
随机推荐
- js原型链理解(3)--构造借用继承
构造借用(constructor strealing) 1.为什么已经存在原型链继承还要去使用构造借用 首先看一下这个例子 function Super(){ this.sets = [0,1,2]; ...
- UVA - 11149 Power of Matrix(矩阵倍增)
题意:已知N*N的矩阵A,输出矩阵A + A2 + A3 + . . . + Ak,每个元素只输出最后一个数字. 分析: A + A2 + A3 + . . . + An可整理为下式, 从而可以用lo ...
- 三星首款折叠屏手机Galaxy Fold上架中国官网
2 月 28 日,在三星 Galaxy S10 系列新品发布会上,备受期待的三星首款可折叠屏手机 Galaxy Fold 也在中国正式亮相.目前,Galaxy Fold 已正式上架三星中国官网,可以预 ...
- LARGE_INTEGER 64位的输出格式
%016I64x 第一个016是指当最左边无数据时用00填充:后面的I64x是__int64的前缀要求格式十六进制输出.
- 封装localStorage设置,获取,移除方法
export const local = { set(key, value) { localStorage.setItem(key, JSON.stringify(value)); }, get(ke ...
- 出现这样的错误提示: E: Sub-process /usr/bin/dpkg returned an error code
1.$ sudo mv /var/lib/dpkg/info /var/lib/dpkg/info_old //现将info文件夹更名2.$ sudo mkdir /var/lib/dpkg/info ...
- C++基础--智能指针
智能指针其实也不是完全的指针,应该说是像指针一样的类对象,智能指针通常有指针的功能,当然同时也包含了一些额外的功能.目前比较常见的智能指针有auto_ptr.unique_ptr和shared_ptr ...
- Pycharm2020最新激活码|永久激活(附最新激活码和插件)
最近很多人的Pycharm激活时间又过期了,后台很多人索要激活码,我就再把激活的方法汇和工具再梳理一次给大家. 最主要有两种激活方式(两种方式需要的激活码不同): 一.激活码激活: 一般一年多需要激活 ...
- MVC学生管理系统-阶段IV(修改学生信息)
项目源码 :https://download.csdn.net/download/weixin_44718300/11091042 前期准备,主体框架, 学生列表显示 请看阶段一文章 添加学生信息 ...
- 三十一、CI框架之使用验证码
一.CI的验证码功能用着很是舒服,需要在根目录下新建一个captcha的验证码文件夹用于存放生产的图片,代码如下: 二.浏览器效果如下: 总结:关于验证码生产函数,有很多参数可以设置,包括字体,验证码 ...