IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> 自学C语言 Day 5 -> 正文阅读

[C++知识库]自学C语言 Day 5

指针

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

内存是如何编号的?
32位机举例:
32位机—32根地址线(物理线)—通电—电信号转化数字信号—1(+)/0(-)

通电后可能性:2^32
00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000001

011111111 111111111 111111111 111111111
10000000 00000000 00000000 00000000

111111111 111111111 111111111 1111111111
每一个就是内存单元的地址
每个内存单元的大小是1Byte=8bit

&取地址取得是地址所对应的第一个字节的地址
如图中的0b即为&a的首地址

打印地址

#define _CRT_SECURE_NO_WARNINGS 1;
#include <stdio.h>
int main()
{
	int a = 11;
	printf("%p", &a);//%p用于打印地址
	return 0;
}
指针变量:用于存放地址的

数据类型 * 变量=&a *表示变量是指针,数据类型表示变量执行的对象是什么类型的
例如int * pa=&a 表示pa是指针,pa执行的对象是int型的

#define _CRT_SECURE_NO_WARNINGS 1;
#include <stdio.h>
int main()
{
	int a = 11;
	printf("%p", &a);//%p用于打印地址
	int* pa = &a;//用于存放地址
	return 0;
}

*间接访问操作符(解引用操作符):通过指针变量内存储存的地址,来找到变量或改变变量的值。
*+指针变量=13(想要改变的值)

#define _CRT_SECURE_NO_WARNINGS 1;
#include <stdio.h>
int main()
{
	int a = 11;
	printf("%p", &a);//%p用于打印地址
	int* pa = &a;//用于存放地址
	*pa = 108;//*间接访问操作符(解引用操作符):通过pa(指针变量)内存储a的地址,来找到或改变a的值。
	return 0;
}

指针大小:

int main()
{
	printf("%d\n", sizeof(char*));
	printf("%d\n", sizeof(int*));
	printf("%d\n", sizeof(long*));
	printf("%d\n", sizeof(short*));
	printf("%d\n", sizeof(float*));
	printf("%d\n", sizeof(double*));
	return 0;
}

指针大小取决于存储地址所要的空间大小,在32位机上是4Bytes,在64位机上是8Bytes。

结构体:可以创造一些c语言不自带的数据类型,从而来描述复杂对象。
struct + 变量名

struct individual
{
	char name[20];
	char country[20];
	int age;
	char sex[5];
	float weight;
	double height;
};

int main()
{
	struct individual I = { "Chris Lin","China",22,"MALE",11.4514,114.514 };//初始化结构体。
	printf("Print 1:\n%s\n%s\n%d\n%s\n%f\n%lf\n\n", I.name, I.country, I.age, I.sex, I.weight, I.height);
	//结构体变量.结构体成员变量
	struct individual* indi = &I;
	printf("Print 2:\n%s\n%s\n%d\n%s\n%f\n%lf\n\n", (*indi).name, (*indi).country, (*indi).age, (*indi).sex, (*indi).weight, (*indi).height);
	//(*指针变量).结构体成员变量=结构体变量.结构体成员变量
	printf("Print 3:\n%s\n%s\n%d\n%s\n%f\n%lf\n", indi->name, indi->country, indi->age, indi->sex, indi->weight, indi->height);
	//指针变量->结构体成员变量=(*指针变量).结构体成员变量
	return 0;
}
  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-09-25 23:05:06  更:2022-09-25 23:05:56 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 9:45:06-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码