6.C语言学习记录-指针

1、c语言中*p表示此指针指向的内存地址中存放的内容。*p一般是一个和指针类型一致的变量或者常量。*p是让程序去那个地址取出数据。

2、例子:int a[5]={1,2,3,4,5};int *p=a;//这是在定义指针变量p的同时就直接给它初始化,即把数组a的首地址赋给它。

#define  _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
//int main()
//{
//	int b = 13;
//	//&b取地址操作符
//	printf("%p\n", &b);
//	int* p = &b;
//	//int说明p指向的对象是int类型
//	//*说明p是指针变量
//	printf("%p\n", &p);
//	//p为指针变量(存放 【指针/地址】的变量称为指针变量)
//	*p = 65;//解引用操作符,通过p存放的地址,找到p所指向的对象,*p就是p指向的对象
//	printf("%d\n", b);
//	return 0;
//
//}
int main()
{
	printf("%zu\n", sizeof(char*));
	printf("%zu\n", sizeof(short*));
	printf("%zu\n", sizeof(int*));
	printf("%zu\n", sizeof(float*));
	printf("%zu\n", sizeof(double*));
//指针变量的大小取决于地址的大小 
//32位机器上的地址大小:32bit = 4byte,(32个 01 组成的二进制序列)则指针变量的大小是4字节
//64位机器上的地址大小:64bit = 8byte,(64个 01 组成的二进制序列)则指针变量的大小是8字节
}

编译器地址的分配

数组中的项目跨字节通常指的是数组中的单个元素(或项目)的大小超过了单个字节的容量,因此需要多个字节来存储。在计算机科学中,字节是基本的数据存储单位,通常包含8个位(bit)。不同的数据类型在内存中占用的字节数可能不同。

例如,在大多数编程语言和系统中:

  • 一个字节(byte)可以存储一个无符号的8位整数(0-255)。
  • 一个short类型(通常是16位)需要两个字节来存储。
  • 一个int类型(通常是32位)需要四个字节来存储。
  • 一个long类型(通常是64位)需要八个字节来存储。
  • 一个float类型(单精度浮点数)通常也需要四个字节来存储。
  • 一个double类型(双精度浮点数)则需要八个字节来存储。

当数组中的元素是上述类型中的任何一种时,这些元素就会跨越多个字节。例如,如果你有一个int类型的数组,并且你的系统使用32位来表示一个int,那么数组中的每个元素都会跨越四个字节。

这种跨字节的存储对于计算机来说是很自然的,因为它允许我们存储更大范围的值或更复杂的数据类型。但是,这也意味着在访问或操作这些数组元素时,计算机需要能够正确地处理多个字节的组合。

在实际编程中,通常不需要直接关心字节级别的细节,因为高级编程语言提供了抽象的数据类型和操作,使得我们可以更直观地处理数据。然而,在某些特定情况下,如底层系统编程、性能优化或跨平台兼容性处理中,了解和理解数据在内存中的布局和存储方式可能是非常重要的。

  • 11
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值