C 1-6 指针

1:指针

指针就是地址,地址就是指针

内存是电脑上特别重要的寄存器,计算机中的程序运行都是在内存中,所以为了有效的使用内存,把内存划分为一个个小的内存单元,每个内存单元大小是1个字节, 为了能够有效的访问到内存中的每个单元,就给内存进行编号,这些编号被称为内存单元的地址。

内存地址示意图

C语言调试模式下观察内存存储情况

内存中数据的存储

内存中16进制的数据存储 0000 0000 0000 0000 0000 0000 0000 1010

0 0 0 0 0 0 0 A

0x 00 00 00 0a ----------> 转换为16进制的形式

【C语言中使用printf打印输出地址 ----------> %p取出地址】

【指针变量的定义】

#define  _CRT_SECURE_NO_WARNINGS
#include "stdio.h"
#include "stdlib.h"
#include "math.h"
#include <string.h>


int main(void) {
	int a = 10;
	// 把地址a存储起来,把内容放到变量中去变量的名字叫做p 类型是int*  p 这个时候P就是指针变量
	int* p = &a;
	printf("%p\n",&a);


	return 0;
}

内存单元

内存单元有自己的编号,这个编号我们称之为内存单元的地址。

编号 -> 地址 -> (地址又被称为指针,指针就是地址就是内存单元的编号)

存放指针(或者地址的变量) 我们称之为指针变量

int mian(void){
    int a = 10;
    int* p = &a;
    return 0;
}

【指针变量】

#define  _CRT_SECURE_NO_WARNINGS
#include "stdio.h"
#include "stdlib.h"
#include "math.h"
#include <string.h>

/*
   指针变量:指针就是用来存放地址的,指针就是地址
   指针变量里存储的就是地址
*/
int main(void) {
	int a = 10;
	int* p = &a;
	char ch = 'w';
	// 创建一个char类型的指针变量
	char* pc = &ch;


	return 0;
}

【C语言中的解引用操作符】

#define  _CRT_SECURE_NO_WARNINGS
#include "stdio.h"
#include "stdlib.h"
#include "math.h"
#include <string.h>

/*
   指针变量:指针就是用来存放地址的,指针就是地址
   指针变量里存储的就是地址
*/
int main(void) {
	int a = 10;
	int* p = &a;
#if      0
		* p 就是解引用操作符,意思就是通过p中存放的地址,找到p所指向的对象
		* p 就是p指向的对象
#endif
	*p = 20;
	
	return 0;
}

【指针的类型】

#define  _CRT_SECURE_NO_WARNINGS
#include "stdio.h"
#include "stdlib.h"
#include "math.h"
#include <string.h>


int main(void) {
	// 不管是什么类型的指针,都是在创建指针变量
	// 指针变量是用来存放地址的
	// 指针变量的大小取决于一个地址存放的时候需要多大的空间
	// 32位机器上的地址:32bit位-- 4 个字节 ,64位机器上的地址:64bit位--byte
	// 指针变量的大小在64位的平台下占用的是8个字节
	printf("%d\n", sizeof(char*));
	printf("%d\n", sizeof(short*));
	printf("%d\n", sizeof(int*));
	printf("%d\n", sizeof(long*));
	printf("%d\n", sizeof(float*));
	printf("%d\n", sizeof(double*));
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值