关于sizeof()、size()的有些问题

#include<iostream>
using namespace std;

int main() {
char a[] = "abcdefg";
string s = a;    
int len = sizeof(a);  //len = 8;

int len_s = sizeof(s);  // len_s = 28;

int lenth = s.size();   //lenth = 7;

int lenth_a = strlen(a);// lenth_a = 7

int lenth_s = strlen(s);  // 错误的

cout << len <<" " <<len_s <<" " << lenth ;
system("pause");
}

时间: 2024-08-03 18:36:53

关于sizeof()、size()的有些问题的相关文章

c语言结构体大小 sizeof(struct A)

1,数据类型自身对齐 数据类型的起始地址为其大小的整数倍 2,结构体的自身对齐 结构体的自身对齐值为其中最大的成员大小 3,指定对齐 可以使用关键词#pragma pack(1) 来指定结构体的对齐值 4,有效对齐值 有效对齐值为自身对齐值与指定对齐值中较小的一个.(即指定对齐值超过自身对齐值无意义) 1 #include<stdio.h> 2 struct { 3 int a; //单个为4 4 char b[3]; // 单个大小为1 因为是数组总和为3 5 double c; //单个为

【C++ Primer每日一刷之十二】 箭头操作符,条件操作符,sizeof操作符,逗号,优先级

5.6. 箭头操作符 C++ 语言为包含点操作符和解引用操作符的表达式提供了一个同义词:箭头操作符(->).点操作符(第 1.5.2 节)用于获取类类型对象的成员: item1.same_isbn(item2); // run thesame_isbn member of item1 如果有一个指向 Sales_item 对象的指针(或迭代器),则在使用点操作符 前,需对该指针(或迭代器)进行解引用: Sales_item *sp = &item1; (*sp).same_isbn(item

The Largest Clique UVA - 11324

题文:https://vjudge.net/problem/UVA-11324 题解: 这个题目首先可以发现,只要是一个强连通分量,要么都选,要么都不选,将点权看成强连通分量的点数,所以这个题目就转化成了DAG上的最大路. 稍微dp一下就好了. 代码: #include <cstdio> #include <iostream> #include <algorithm> #include <cstring> #include <cmath> #in

linux:C语言通过ICMP局域网内部主机是否存活

ICMP协议 ICMP(Internet Control Message,网际控制报文协议)是为网关和目标主机而提供的一种差错控制机制,使它们在遇到差错时能把错误报告给报文源发方. ICMP协议是IP层的一个协议,但是由于差错报告在发送给报文源发方时可能也要经过若干子网,因此牵涉到路由选择等问题,所以ICMP报文需通过IP协议来发送. ICMP数据报的数据发送前需要两级封装:首先添加ICMP报头形成ICMP报文,再添加IP报头形成IP数据报. main.cpp : #include <stdio

emacs 中的键盘宏

PING(Packet InterNet Groper)中文名为因特网包探索器,是用来查看网络上另一个主机系统的网络连接是否正常的一个工具.ping命令的工作原理是:向网络上的另一个主机系统发送ICMP报文,如果指定系统得到了报文,它将把回复报文传回给发送者,这有点象潜水艇声纳系统中使用的发声装置.所以,我们想知道我这台主机能不能和另一台进行通信,我们首先需要确认的是我们两台主机间的网络是不是通的,也就是我说的话能不能传到你那里,这是双方进行通信的前提.在Linux下使用指令ping的方法和现象

arm linux c/c++实现ping网络测试

附源码:ping.cpp ping.h    是类的实现. 实例代码是从项目的应用中剥离出来的: ping.cpp: #include "ping.h" Ping::Ping() { m_maxPacketSize = 4; m_datalen = 56; m_nsend = 0; m_nreceived = 0; m_icmp_seq = 0; } /*校验和算法*/ unsigned short Ping::getChksum(unsigned short *addr,int le

cf 730J. Bottles

搞一个背包,233 要求用的瓶数最少,那么就业瓶数为第一关键,当瓶数相当后再以a[i] 1 #include<bits/stdc++.h> 2 #define N 100005 3 #define LL long long 4 #define inf 0x3f3f3f3f 5 #define ls tr[x][0] 6 #define rs tr[x][1] 7 using namespace std; 8 inline int ra() 9 { 10 int x=0,f=1; char ch

【NOI2015】品酒大会

令${str\left(i,j \right)}$为区间${[l,r]}$所表示的子串. 对于任意$r$ 一,求${\sum _{i=1}^{n}\sum _{j=i+1}^{n}[str(i,i+r-1)=str(j,j+r-1)]}$ 二,求${ans[r]=max(val[i]*val[j])}$,且${str(i,i+r-1)=str(j,j+r-1)}$ 直接用SAM构出后缀树,然后一个子串一定是原串的一个后缀的前缀,然后找到后缀树中每一个后缀对应的节点,每一对后缀的LCP对应了后缀树

POJ1741 Tree

本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000 作者博客:http://www.cnblogs.com/ljh2000-jump/转载请注明出处,侵权必究,保留最终解释权! Description Give a tree with n vertices,each edge has a length(positive integer less than 1001). Define dist(u,v)=The min distan

【tarjan求割顶】BZOJ2730-[HNOI2012]矿场搭建

[题目大意] 煤矿工地可以看成是由隧道连接挖煤点组成的无向图.为安全起见,希望在工地发生事故时所有挖煤点的工人都能有一条出路逃到救援出口处.于是矿主决定在某些挖煤点设立救援出口,使得无论哪一个挖煤点坍塌之后,其他挖煤点的工人都有一条道路通向救援出口.请写一个程序,用来计算至少需要设置几个救援出口,以及不同最少救援出口的设置方案总数. [思路] 可以得出这样的结论: (1)如果一个点是割点,那么在它上面建救援出口是没有意义的 (2)对于出去割点后的连通块,如果它和两个及以上的割点相连,这不需要建救