C语言入门篇--初识指针和指针变量

1.指针

指针就是地址(即一个数据)。

2.指针变量

2.1概念

(1)指针变量是变量,是变量在内存中就会开辟空间,会有自己对应的的地址,有自己的变量大小。
(2)指针变量里放的内容是地址(即指针)。

2.2指针变量大小

32位平台下,4字节。
48位平台下,8字节。

2.3指针变量理解

理解前一定先看看,地址相关知识。

#include <stdio.h>
int main()
{
	int a = 10;
	int *p = &a;//p为指针变量
	printf("a的地址=%p,\n", &a);
	printf("p的地址=%p,\n", &p);//&p此处用的是p的内容,以十六进制(地址形式)打印。
	printf("a的内容=%d,\n", a);
	printf("p的内容=%p,\n", p);
	printf("p指向的内容=%d,\n", *p);//对指针进行解引用
	return 0;
}

画图简单说明:

如果想深一层了解指针变量及其使用,可以看看变量的左值右值。

以上就是C语言入门篇--初识指针和指针变量的详细内容,更多关于C语言的文章资料请关注我们其它相关文章!

(0)

相关推荐

  • C语言 指针变量作为函数参数详解

    在C语言中,函数的参数不仅可以是整数.小数.字符等具体的数据,还可以是指向它们的指针.用指针变量作函数参数可以将函数外部的地址传递到函数内部,使得在函数内部可以操作函数外部的数据,并且这些数据不会随着函数的结束而被销毁. 像数组.字符串.动态分配的内存等都是一系列数据的集合,没有办法通过一个参数全部传入函数内部,只能传递它们的指针,在函数内部通过指针来影响这些数据集合. 有的时候,对于整数.小数.字符等基本类型数据的操作也必须要借助指针,一个典型的例子就是交换两个变量的值. 有些初学者可能会使用

  • C语言中关于指针变量的坑

    先看一个初始化带头结点单链表的例子,LNode是结点变量,LinkList是结点指针变量,等同于LNode* typedef struct LNode{ // 定义单链表节点类型 int data; struct LNode *next; }LNode,*LinkList; 例1.错误的方法:初始化带头结点的单链表 void InitList(LinkList L) { L = (LinkList)malloc(sizeof(LNode)); L->data = 3; L->next = NU

  • C语言入门篇--初识指针和指针变量

    1.指针 指针就是地址(即一个数据). 2.指针变量 2.1概念 (1)指针变量是变量,是变量在内存中就会开辟空间,会有自己对应的的地址,有自己的变量大小. (2)指针变量里放的内容是地址(即指针). 2.2指针变量大小 32位平台下,4字节. 48位平台下,8字节. 2.3指针变量理解 理解前一定先看看,地址相关知识. #include <stdio.h> int main() { int a = 10; int *p = &a;//p为指针变量 printf("a的地址=

  • C语言入门篇--初识C语言及数据类型

    目录 1. 什么是C语言? 2.第一个C程序&&知识点 2.1 头文件 2.2 main函数 2.3 函数调用 2.4 return 0; 3. 数据类型 3.1 C语言数据类型 3.2 为什么有这么多数据类型? 3.3 各个数据类型的大小 1. 什么是C语言? (1)C语言是面向过程.编译型的编程语言(与C++.Java等面向对象的编程语言有所不同,ps:C与C++是兼容的),经过编译后最终形成可执行程序(即exe,可直接运行). (2)C语言非常经典,一般会在底层开发使用,Linux.

  • C语言入门篇--初识结构体

    目录 1.为什么要有结构体 2.结构体的定义 2.1结构体类型的定义 2.2定义结构体普通变量及访问 2.3定义结构体指针变量及访问 1.为什么要有结构体 (1)之前int.char等类型描述的结构体非常单一,只可描述一种类型. (2)数组也是描述同一类型的集合,只可描述一种类型. (3)而结构体使得C语言可以描述复杂类型,比如学生类型( 包含学生的名字.年龄.性别.电话号等信息). 结构体和数组的区别: 结构体:用来描述相同/不同数据元素类型的集合. 数组:用来描述具有相同数据元素类型的集合.

  • C语言入门篇--充分理解操作符

    目录 1.算术操作符 1.1除法运算 1.2取模运算 2.移位操作符 相关知识 1.移位运算是站在二进制角度移位的 2.左移右移,原始变量值不发生变化除非给原始变量赋值 3.整数移位运算不能整除时,只保留整数部分 4.C语言中的移位运算符 5.移位分为算术移左移.算术移右移和逻辑左移.逻辑右移 3.位操作符 3.1按位与& 3.2按位或 | 3.3异或 ^ 4.赋值操作符 5.单目操作符 5.1 逻辑反操作 ! 5.2 负值 - 正值 + 5.3 取地址 & 5.4 取反 ~ 5.5 前置

  • C语言入门篇--变量的左值和右值

    目录 1.普通变量 2.指针变量 2.1初步理解 2.2深入理解 在看此块内容前可以先看看内存及地址相关内容,更容易理解. 1.普通变量 一个变量是有三个属性: 1.变量的空间. 2.变量的内容. 3.变量的地址. 空间即若干字节,内容即空间里放了什么,地址即变量对应的空间地址. #include <stdio.h> int main() { int a = 10;//定义变量a,开辟4个字节的空间. a = 20;//见下述文字解释 int b = a;//见下述文字解释 return 0;

  • C语言入门篇--理解地址及内存

    1.内存 内存是电脑中一个重要的存储器,计算机中所有的程序都在内存中运行的,内存的性能对计算机的影响非常大. 内存是计算机与CPU进行沟通的桥梁,计算机会把程序由硬盘加载到内存中后再去使用. 为了有效的使用内存,把内存划分成一个个小的内存单元,每个内存单元的大小是1个字节. 为了能够有效的访问即快速找到内存的每个单元,就给内存单元进行了编号,这些编号被称为该内存单元的地址. 一般运行一个程序主要涉及计算机的三个设备:内存.CPU.硬盘. 1.1内存和CPU的关系 CPU是负责数据的运算和处理,内

  • C语言入门篇--字符串的基本理论及应用

    目录 字符串 1.常见字符串的情况 2.'\0'的证明 3.字符串的用法 3.1 用数组 3.1.1 给数组直接赋字符串 3.1.2 以单个字符赋入数组 3.2 用指针 4.字符串可直接输出 字符串 (1)由双引号(Double Quote)引起来的一串字符称为字符串字面值(String Literal),或者简称字符串.eg:"hello world!" (2)字符串在结束时默认有 转义字符'\0',不作为内容,作为结束标志. (3)C语言无字符串类型,需借助 char*,char[

  • C语言入门篇--关键字static详解

    目录 1.修饰局部变量 1.1作用 1.2举例 (1)不加static (2)加static (3)静态局部变量的初始化只会进行一次 2.修饰全局变量 2.1作用 2.2举例 (1)不加static (2)加static 3.修饰函数 3.1作用 3.2举例 (1)不加static (2)加static 1.修饰局部变量 1.1作用 ststic修饰局部变量,会改变局部变量的生命周期,不改变作用域: 生命周期:和全局变量一样具有全局性,但在内存中的位置没有改变,还在在静态存储区中. 作用域:作用

  • C语言入门篇--函数及数组用法

    目录 函数 1.函数的作用 2.函数的构成 (1)返回值 (2)函数名 (3)形参列表 (4)函数体 数组 1.定义数组 1.1不进行初始化 1.2进行初始化 1.3不给定数组元素个数 2.数组的经典用法 2.1求数组大小.元素大小.元素个数 2.2遍历 面向过程编程:C语言是面向过程的语言:在C语言中,把大部分的功能以一个个函数呈现,就称之为面向过程编程: 函数 是面向过程编程最关键的语法结构. 1.函数的作用 1.从工程上讲,函数可以让我们的代码更具有结构性,让代码更好看. 2.函数可以提升

  • C语言入门篇--注释,关键字typedef及转义字符详解

    目录 注释 1.注释意义 2.两种注释风格 2.1 C语言注释风格 2.2 C++注释风格 关键字typedef 1.注意 2.用法 语法结构 转义字符 1.转义字符及其含义 2.字面 转 特殊 3.特殊 转 字面 注释 1.注释意义 (1)代码中有不需要的代码可以直接删除,也可以注释掉. (2)有些代码比较难懂可以注释一下. 2.两种注释风格 2.1 C语言注释风格 /*xxxxxx*/ 一次可以注释一行或多行,但不能嵌套注释. eg: #include <stdio.h> int main

随机推荐