C/C++
一个专研技术的小蜜蜂
提升技术涵养,修炼技术艺术;发现技术美好,传播技术知识
展开
-
sizeof引发的假想三:sizeof 与 strlen 一较长与短
直接上代码#include <iostream>#include <string>#include <cstring> int main() { using namespace std; char a[] = "abcdef"; char b[20] = "abcdef"; string s = "abcdefghijk"; cout<<strlen(a)<<endl; cout<<sizeof(a)&原创 2022-01-22 16:54:22 · 415 阅读 · 0 评论 -
sizeof引发的假想二:怎么样用她
sizeof有两种用法:1:sizeof作用于对象 sizeof object 或者sizeoof(object) 的写法都是正确的; 对象是理解为是分配了一定的内存空间的2:sizeof作用于数据类型 只有sizeof(数据类型)一种写法,如sizeof(int) 数据类型可以是结构体,联合体,基本的数据类型,自定义的类型… 理解为数据的抽象,就是还没有分配内存空间。可以看出加括号永远不会错,像只有带套的男人才是好男人,拒绝渣男...原创 2022-01-19 10:15:47 · 275 阅读 · 0 评论 -
sizeof引发的假想一:她是什么?
使用sizeof的时候,我们通常会加括号,如sizeof(),这样写,容易引起误解,把sizeof当成一个函数,实际上她一个运算符。不要再被她的外表所迷惑了。原创 2022-01-18 11:58:17 · 363 阅读 · 0 评论 -
左值与右值(一)
定义:左值:lvalue(locator value)代表一个在内存中占有确定位置的对象(换句话说就是有一个地址)。右值:rvalue通过排他性来定义,每个表达式不是lvalue就是rvalue。因此从上面的lvalue的定义,rvalue是在不在内存中占有确定位置的表达式。int a;a = 8;9 = a; // error(a + 2) = 8;// error 赋值运算符(=)要求一个lvalue作为它的左操作数 ,而常量9与表达式(a + 2)都不是左值。为什么说它们不是左原创 2022-01-15 14:50:07 · 252 阅读 · 0 评论