c语言sizeof和strlen哪个大,C语言的sizeof和strlen区别与联系

sizeof指的是占有空间的大小,包括字符串结束的\0。strlen是计算字符串长度,以\0作为结束标志,并且\0不计入数值。

#include

#include

using namespace std;

void fun(char a[100]){

cout << sizeof(a) << endl;

// 参数里的数组也是按指针传值的。所以复制的是一个指针, 输出4

cout << strlen(a) << endl;

// 5

}

int main()

{

char *p1 = "Hello world!";

char p2[] = "Hello world!";

char p3[] = {'H','e','l','l','o',' ','w','o','r','l','d','!'};

char p4[] = {'H','e','l','l','o','\0','w','o','r','l','d','!'};

char p5[100] = {'H','e','l','l','o','\0','w','o','r','l','d','!'};

char *p6 = "Hello world!";

cout << int(p1) << "\t" << int(p6) << endl;

// 两个值相同,所以p1和p6两个指针指向同一块静态存储区。

//p1[2]='T'; 报错!内存错误,静态存储区内只能存储常量。

cout << sizeof(p1) << endl;

// 字符串存储在静态存储区,而栈中存放的是一个指针,在32位机上,输出4

cout << sizeof(p2) << endl;

// p2数组全部存放在栈空间上,包括\0共占用13个字节的空间,输出13

cout << sizeof(p3) << endl;

// p3是一个字符数组,共含有12个元素,所以输出12

cout << sizeof(p4) << endl;

// p4是一个字符数组,共含有12个元素,所以输出12

cout << sizeof(p5) << endl;

// 栈中开辟了100字节大小的内存,所以输出100

cout << sizeof(short) << endl;

// short = 2字节

cout << sizeof(int) << endl;

// int = 4字节

cout << sizeof(long) << endl;

// long=4字节

cout << sizeof(long long) << endl;

// 8

cout << sizeof(__int64) << endl;

//8

cout << sizeof(float) << endl;

// 4

cout << sizeof(double) << endl;

// 8

cout << strlen(p1) << endl;

// 静态存储区内,在!后含有了\0所以输出12

cout << strlen(p2) << endl;

// 12

cout << strlen(p3) << endl;

// 不含有\0 所以这种输出方式 disaster 灾难!!输出结果不确定,这里是28

cout << strlen(p4) << endl;

// \0之前含有Hello所以长度为5

cout << strlen(p5) << endl;

// 5

fun(p5);

system("pause");

return 0;

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/306839.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据结构——进制转换(10—n)

进制转换&#xff08;10进制——n进制&#xff09; 所需知识&#xff1a;栈 #include<stdio.h> #include<bits/stdc.h> using namespace std; #include<malloc.h> #include<string>typedef int Status; #define OK 1 #define ERROR 0 #define TRUE 1…

Azure 静态 web 应用集成 Azure 函数 API

前几次我们演示了如何通过Azure静态web应用功能发布vue跟blazor的项目(使用 Azure静态web应用Github全自动部署VUE站点、使用Azure静态Web应用部署Blazor Webassembly应用)。但是一个真正的web应用&#xff0c;总是免不了需要后台api服务为前端提供数据或者处理数据的能力。同样…

c++ new一个结构体_C语言结构体,又一个纸老虎,纯干货讲解(附代码)

来源&#xff1a;网络&#xff0c;排版整理&#xff1a;晓宇微信公众号&#xff1a;芯片之家(ID&#xff1a;chiphome-dy)结构体的定义结构体(struct)是由一系列具有相同类型或不同类型的数据构成的数据集合&#xff0c;也叫结构。结构体和其他类型基础数据类型一样&#xff0c…

c语言next的用法,C语言strchr使用之Next查找和截断想要的字符串

#include #include #include #include #include #include #include #include static char pstring[] "Hello\n"; // 这里不能是char*int main(){char tmp ;char* pstr strchr(pstring,‘l‘);printf("pstr is %s %p\n",pstr,pstr);#if 0// 搜后面的pstr …

problem b: 十进制整数转二进制_二进制的科学计数法?白话谈谈计算机如何存储与理解小数:IEEE 754...

浮点数的计算机表示(IEEE 754)&#xff0c;由 UCB 数学教授 William Kahan 主要起草。后者也因其卓越贡献于1989年获得图灵奖。计算机组成原理与汇编语言这两门课均对该内容有所讲解。与课程中直接抛出公式与概念不同&#xff0c;我想首先与各位探讨"科学计数法"这个…

分享我的写作经验

大家好&#xff0c;我是Z哥。最近一段时间&#xff0c;我面基了几个在微信上聊得不错的小伙伴。和其中的两位有聊到关于写作的事情。概括地说就是他们也想写写博客、公众号&#xff0c;但是感觉无从下手。我和他们分享了我的一些经验&#xff0c;在这里做一下总结和补充&#x…

数据结构——二叉树的最小深度算法

给定一个二叉树&#xff0c;找出其最小深度。 最小深度是从根节点到最近叶子节点的最短路径上的节点数量。 说明&#xff1a;叶子节点是指没有子节点的节点。 输入&#xff1a;root [3,9,20,null,null,15,7] 输出&#xff1a;2 示例 2&#xff1a; 输入&#xff1a;root …

开发板实现645协议C语言,迅为-imx6ull开发板之C语言实现LED例程

第九章我们使用汇编编写了 LED 灯的实验&#xff0c;在实际开发过程中大部分还是使用 C 语言&#xff0c;汇编只是用来完成 C 语言环境的初始化&#xff0c;本章我么就来实现用汇编完成 C 语言环境的初始化&#xff0c;然后用 C 语言实现 LED 的例程。10.1 C 程序版LED例程简介…

解锁环境变量在云原生应用中的各种姿势

应用程序在某些时刻总是需要一些外挂配置&#xff0c;云原生应用的实践是在容器化之前就将应用程序配置保留在代码之外。“12-Factors App&#xff1a;Store config in the environment① 外挂配置文件&#xff1a;业务配置 appsettings.json“可以在代码中要求加载appsetting.…

python字符串截取方法_如何使用python语言中的字符串方法截取字符串

在我们使用python语言中的字符串方法时&#xff0c;可能会判断某个字符串是否以什么开头&#xff0c;可以使用什么进行截取等。下面利用几个实例说明字符串中的方法的用法&#xff0c;操作如下&#xff1a;工具/原料 python 截图工具 方法/步骤 1 第一步&#xff0c;打开python…

数据结构——二叉树的层次遍历

问题描述&#xff1a; 给你一个二叉树&#xff0c;请你返回其按 层序遍历 得到的节点值。 &#xff08;即逐层地&#xff0c;从左到右访问所有节点&#xff09;。 示例&#xff1a; 二叉树&#xff1a;[3,9,20,null,null,15,7] 返回其层次遍历结果&#xff1a; [ [3], [9,…

asp.net core 使用 TestServer 来做集成测试

asp.net core 使用 TestServer 来做集成测试Intro之前我的项目里的集成测试是随机一个端口&#xff0c;每次都真实的启动一个 WebServer&#xff0c;之前也有看到过微软文档上 TestServer 的介绍&#xff0c;当时没仔细看过以为差不多就没用&#xff0c;一直是启动了一个真正的…

python os system_python中os. popen system的区别

python调用Shell脚本或者是调用系统命令&#xff0c;有两种方法&#xff1a; os.system(cmd)或os.popen(cmd),前者返回值是脚本的退出状态码&#xff0c;正确会返回0&#xff0c;错误会返回其他数字。 后者的返回值是脚本执行过程中的输出内容。实际使用时视需求情况而选择。 p…

android 文件 c语言 jni,Android jni 调用的so文件一个函数的反汇编 高手来看看

[Asm] 纯文本查看 复制代码var_104 -0x104var_A0 -0xA0var_48 -0x48var_34 -0x34var_2C -0x2Cvar_28 -0x28STMFD SP!, {R4-R11,LR}LDR R8, (_GLOBAL_OFFSET_TABLE_ - 0x2B34)LDR R11, (__stack_chk_guard_ptr - 0xA104)SUB SP, SP, #0xE4ADD R8, PC, R8LDR R3, [R8,R11]ADD R4,…

数据结构——交换左右子树

递归——层次遍历—交换左右子树算法 思路&#xff1a; 与先序递归遍历类似 1如果有子树&#xff0c;交换这个节点的左右子树&#xff08;和交换两个变量的值一样&#xff09; 2再递归这个节点的左子树&#xff0c;右子树&#xff1b; #include<stdio.h> #include<b…

python人工智能面试题_人工智能面试题分享(含答案)

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 1、深度学习框架TensorFlow中有哪四种常用交叉熵&#xff1f; 答&#xff1a; tf.nn.weighted_cross_entropy_with_logits tf.nn.sigmoid_cross_entropy_with_logits tf.nn.softmax_cross_entropy_with_logits tf.nn.sparse_softm…

微服务很香--麻辣味,但要慢慢消化

前言微服务在编程圈火的是不行不行的啦&#xff0c;可能还有很多小伙伴还没有进行微服务实操&#xff0c;但这个词&#xff0c;要说没听过、没看过&#xff0c;那小伙伴一定是假Programmer。虽然微服务很火&#xff0c;但不能盲目使用&#xff1b;先不说涉及技术和工具有多少&a…

c语言实现灰度图像阈值分割,灰度图像--图像分割 阈值处理之平均阈值

学习DIP第52天转载请标明本文出处&#xff1a;http://blog.csdn.net/tonyshengtan &#xff0c;出于尊重文章作者的劳动&#xff0c;转载请标明出处&#xff01;文章代码已托管&#xff0c;欢迎共同开发&#xff1a;https://github.com/Tony-Tan/DIPpro开篇空话好久没写博客了&…

数据结构——二叉树的双序遍历

设计二叉树的双序遍历算法(双序遍历是指对于二叉树的每一个结点来说,先访问这个结 点,再按双序遍历它的左子树,然后再一次访问这个结点,接下来按双序遍历它的右子树 思路&#xff1a; 1.双序遍历与中序遍历类似&#xff0c;是中序遍历的变形 2.中序遍历是指对于二叉树的每一…

python如何封装成可调用的库_Python实现打包成库供别的模块调用

1.创建python项目bricewulib2.新建test_package包并创建info1类以及print_hello方法3.为了让包的结构再复杂点&#xff0c;我们再在test_package下面新建一个test_package2包并创建Info2类以及print_hello2方法&#xff08;注意&#xff1a;这里是Info2&#xff0c;不是上面的I…