指针和数组小结

如何用C++ 实现sizeof求出所有基本数据类型的长度 c++用sizeof求出所有基本数据类型的长度 1、用sizeof求出所有基本数据类型的长度 #include <iostream> #include <cstdlib> using namespace std; int main() { int a, b, c, d, e, f, g, h,i,j,k; a=sizeof(char); b = sizeof(short); c = sizeof(int); d = sizeof(long); e= si 阅读详情

一、指针的大小

指针在32位程序中占4个字节,在64位程序中占8个字节。

  • 注意是在32/64位程序中而不是32/64系统!是环境决定了指针的大小。

二、数组指针和指针数组

  • 数组指针是指针,是专门指向数组的指针。
//数组指针
int (*p)[10]
  • 指针数组是数组,是存储指针的数组。
//指针数组
int* a[10]

三、数组名与&数组名的区别

(1)一维数组
int a[4] = {1,2,3,4};
  1. 如上面的数组a,a为数组名,代表数组首元素的地址,其本质是地址,所以可以将其看为普通的指针。
  2. &a,代表数组的地址,可以将其看成数组指针。
(2)二维数组
int a[3][4] = {0};
  1. a的类型为int(*p)[4],是数组指针。
  2. a[0]是第0行的数组的地址的类型,是指针。

四、sizeof()和strlen()的区别

sizeof() 是一种内存容量度量函数,功能是返回一个变量或者类型的大小(以字节为单位);在 C 语言中,sizeof() 是一个判断数据类型或者表达式长度的运算符。

strlen() 所作的是一个计数器的工作,它从内存的某个位置(可以是字符串开头,中间某个位置,甚至是某个不确定的内存区域)开始扫描,直到碰到第一个字符串结束符’\0’为止,然后返回计数器值(长度不包含’\0’)。

  • sizeof是运算符
    作用:任意变量和类型的大小
  • strlen是函数
    作用:计算字符数组或者字符指针指向的数组的大小,遇到\0结束
  • 注意:strlen(const char *p),传入的参数是指针类型。
  • 特殊的:sizeof(数组名)这里特殊处理,没有计算本身类型的大小,算出的是数组的大小。

五、字符数组的初始化

char arr[] = "abcdef";
char a[] = {"a","b","c","d","e","f"};
  1. 第一种初始化方式在字符串末尾默认有\0,所以在使用sizeof(arr)计算时得到的结果为7,因为将\0也计算上了。
  2. 第二种初始化方式在字符串末尾默认没有\0,所以在使用strlen(a)计算时得到的是随机值,因为系统会一直计算知道找到\0为止。
Dify 第 13 篇 Dify 工作流 详解 工作流通过将复杂任务分解为节点降低复杂度,提升LLM应用的性能和稳定性。Dify工作流分为两类:Chatflow面向对话场景(如客服),支持多轮对话;Workflow面向批处理场景(如翻译),提供逻辑节点实现自动化。核心概念包括节点、变量(系统/会话/环境变量)及应用类型差异:Chatflow支持中间输出和对话历史,Workflow仅支持结束节点输出。系统变量以"sys"开头,用于全局数据传递,不同应用类型变量不同,如Chatflow的sys.query存储用户输入,Workflow的s 阅读详情

相关推荐

Delta-Sigma调制(DSM)技术

前言 数字信号处理和通信系统的性能很大程度上受到了模拟信号到数字信号转换接口——ADC的精度和分辨率的限制。而传统的线性脉冲编码调制(PCM)ADC受到了制造工艺的限制,无法达到很高的分辨率。但基于Delta-Sigma调制技术的ADC可以在现有工艺下实现高分辨率(大于16位),同时由于结构简单,所以易于实现。低成本高性能使得Delta-Sigma调制技术得到了广泛的应用。 Delta-Sigma型ADC的结构原理图如下图所示: 它最大的优势在于仅用1位ADC进行数据转换,同时其模拟电路部分结构简单不需要

阿星的博客 2万+

c语言 利用sizeof计算各种类型数据长度

# cat size_test.c #include <stdio.h> int test(int arr[]); int main(void){ char * str1 = "hello"; char str2[] = "hello"; int arr[] = {1,2,3,4,5}; int * a = NULL; int b = 10; a = &b; printf("char * str1 length: %d\n",.

Tom098的博客 2078

手机直连卫星上网,3GPP R17/R18到底做了哪些技术升级?(IoT/NR NTN详解)

本文深入解析了3GPP R17/R18标准中手机直连卫星上网的技术升级,重点介绍了IoT NTN与NR NTN两项关键技术。R17通过星历辅助补偿算法和多普勒频移控制,实现了智能手机直连卫星的突破;R18则进一步优化移动性、支持高频段和星上本地交换,提升用户体验。这些技术为物联网和5G/6G通信开辟了新可能。

weixin_33701251的博客 617

每周来点C语言零碎小知识(4)

希望勤能补拙! 小白学C语言道阻且长,欢迎找茬,同学习共交流 1、测量并打印出变量类型的长度: char , int, long, short, float, double, unsigned char ,unsigned int ## 1、~ (~ 0<<4)和~(1<<4)分别等于多少 ~按位取反 <<左移运算 0的二进制为00000000,那么~0就为11111111 0<<4就是将~0的二进制码向左移动4位,右边补0,即得11110000 (0&lt

qyt_722的博客 382

如何加载交易策略EA到MT4/MT5

1、打开MT4/MT5软件 2、首先,必须有一个EA,而且必须是mq4/ex4为扩展名。点击左上角“文件”—“打开数据文件夹”,找到安装路径 3、将EA的ex4或mq4文件放到MT4目录\MQL4\Experts里面(本文以名为Demo的EA为例) 4、如果有DLL库文件,复制到experts目录下的libraries子目录中 5、如果有tpl模板文件,复制到templates目录中 6、添加完成后重启MT4,点击允许EA运行图标 7、在导航中找到刚才安装的EA,拖拽到...

weixin_41364817的博客 7362

sklearn2pmml xgboost缺失值(missing)处理的坑

sklearn2pmml xgboost缺失值(missing)如何处理 今天同事在部署xgboost pmml模型时遇到了大坑,线上spark预测和本地python预测结果怎么都不对应,记录一下处理过程。 看了下同事的代码,貌似也没有问题 from sklearn2pmml import PMMLPipeline from sklearn2pmml import sklearn2pmml fro...

Skycrab 8969

c++使用sizeof函数测试char数组

在创建char数组时如果用字符串创建和不使用字符串创建sizeof函数竟然有不同的答案。

qq_58563811的博客 1004

WPS用户看过来:避开格式错乱坑,用WPS Office完美制作红头文件(2024最新版)

本文详细解析了WPS Office与Word在红头文件制作中的核心差异,提供了2024年最新版的零误差实战指南。从字体处理、页面布局到红头制作关键步骤,帮助用户避开格式错乱坑,确保跨设备显示一致。特别针对WPS用户优化,解决字体丢失、版式错位等常见问题。

weixin_26800111的博客 218

c语言sizeof用法计算char,C语言里sizeof(char)是什么意思

sizeof() 是一种内存容量度量函数,功能是返回一个变量或者类型的大小(以字节为单位)。char是c语言中基本类型,一般char类型占1个字节。sizeof(char)的结果是,1。sizeof:计算数据类型长度char = 1int 2,long 4int a[6];sizeof (a) 2*6= 12单位都是字节。float 4扩展资料:在 Pascal 语言中,sizeof() 是一种内...

weixin_35410816的博客 7658

PCIE的MSI中断处理机制与优化策略

PCIe设备的。

xiaoheshang_123的博客 519

华为OD技术面真题 - Python开发 - 1

汇总华为OD技术面八股Python八股,高频技术真题并提供详细解答。

qq_45776114的博客 1719

数组和指针小结

//数组和指针小结 #include using namespace std; //小结: //1. 对于静态n维数组而言,标识符代表的总是一个一维数组的地址,这个一维数组的每个 //   元素就是一个n-1维数组,依次类推; //2. 如果标识符是a,则*a,a,&a的值是相同的(这个很特殊),但是其代表的意义是不同的 //3. 字符数组或者字符串常量的指针是特殊的,直接打印的时

gukesdo的专栏 742

故障诊断 | CNN-BiGRU-Attention故障诊断

故障诊断 | CNN-BiGRU-Attention故障诊断

机器学习之心的博客,关注并私信文章链接,获取对应文章源码和数据。 674

C语言中关于数组与指针和字符串与指针的小结

数组与指针: 数组元素的指针就是数组元素的地址 指向数组元素的指针,它的方法与指向变量的指针变量相同 引用一个数组元素可以用: (1)下标法  如:a[i]形式; (2)指针法  如:*(a+i)或*(p+i); a是数组名,p是指向数组元素的指针变量,它的初值p=a 注意:   数组名即翻译成数组的第一个元素的地址,其中a或p是第一个元素的地址,加上i就是指向第i个元素。注意,它

于吉云的专栏 864

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

数组和指针疑难小结1

首先假如说命名了一个数组 int a[i] 和 int b[i][j] 。 1.这里的a,b是一个地址,但是这个地址是不占空间的,仅代表一个地址。(指针和指针变量注意区分。) 2.为什么在函数使用数组的时候要进行传入指针,因为这样的话速度是最快的,而且指针可以通过解引用来得到比如说二维数组的值! 当一维数组a传入函数的时候,我们函数形参声明时,可以写int p[]或者int *p,这样代表的是都是传入了一个指针,也是函数引用一维数组的形式。 当二维数组b传入函数的时候,我们函数形参声明时,...

wlcndy的博客 267

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

指针和数组学习点滴小结

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34128501的博客 179

C语言数组和指针笔试题小结

11111111111 一维数组 int a[] = {1,2,3,4}; printf("%d\n", sizeof(a)); // 16,sizeof(数组名),当数组名单独放在sizeof()中时,数组名表示整个数组 printf("%d\n", sizeof(a+0)); // 8,数组名没有单独存放时表示首元素地址 printf("%d\n", sizeof(*a)); // 4 printf("%d\n", sizeof(a+1)); // 8 printf("%d\n",

Goallegoal的博客 453

数组和指针(问题汇总+小结)

常量与指针: const int* p1 = &i; int const* p2 = &i; int* const p3 = &i; const int* const p4 = &i; *p1 = 1; // compile error p1 = NULL; // ok *p2 = 2; // compile error p2 = NULL; // ok *p3

weixin_43384504的博客 243

关于指针和函数和字符数组的一些小结

char *p = "abcdefg";//静态存储区 char p[] = "abcdefg"; // p本身是数组名了,数组里放的字符串,是局部变量,内容是原来的静态区域内容的拷贝! 因此返回p实际上返回的局部变量地址而不是静态存储区地址,和上面不同!

郭小郭的专栏 837

c语言返回函数值的指针,指针数组和指向指针的指针,有关指针的数据类型和指针运算的小结

返回的指针应指向有效的内存。- 指针的使用: 函数返回指针、指针数组、指向指针的指针等,都是指针在C语言中的重要应用。- 指针的运算: 包括指针的加减、比较等操作,需要注意指针类型的步长和类型安全性。- char* names[]: 数组中的每个元素都是一个指向字符的指针。- 指针的基本概念: 包括指针的声明、指向数据类型的指针、指针的运算等。- `*(p + 2)`: 访问 arr 的第三个元素,值为 3。

lexc_的博客 687

C语言小结--指针和数组的结合

1、数组和指针有什么关系我们知道,访问一个变量的内容的实质就是访问内存,方位一个变量可以通过变量名访问,也可以通过指针来访问。如下的两种操作printf结果是一样的:#include <stdio.h> int main(void) { int a = 10; int b; int *p; b = a; p = &a; printf("b = %d;\n"

静静流淌的柯溪的博客 692

指针和数组(《C语言深度解剖》——读书小结)

目录: (1)数组?指针? (2)数组和指针的区别(两种形式并存的必要) (2.1)定义为指针,声明为数组 (2.2)定义为数组,声明为指针 (3)指针数组 (4)数组指针 (5)函数指针 (6)函数指针数组 (6.1)计算器常规实现 (6.2)计算器函数封装 (6.3)计算器转移表实现 (7)指向函数指针数组的指针 (1)数组?指针? 书中一开始提出这样...

记录职业生涯中的所思所想、所见所闻、所行所得。 386

c++ primer 学习之路 (19)4.8 指针、数组和指针算术 4.8.2 指针小结

程序清单:#include&lt;iostream&gt;using namespace std;int main(){ double wages[3] = { 10000.0,20000.0,30000.0 }; short stacks[3] = { 3,2,1 }; double *pw = wages; short *  ps = &amp;stacks[0]; cout &lt;&lt;...

zhangfengfanglzb的博客 243

C语言 指针和数组——小结

hangweijie的博客 190

C语言 -- 数组指针 与 指针数组

字符指针的一般使用······ (字符串)区分字符数组与字符指针······ 指针数组 与 数组指针 的区分······ &数组名 与 数组名 的区分······ 数组指针的使用·······

MonologueYY的博客 1601
上一篇: 课程总结
下一篇: 课堂小结(结构体、枚举、联合、位段)
墨柔千城
博客等级 码龄7年 71粉丝 35原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值