一个神奇的sizeof

关于 sizeof 有话说

关于sizeof
单位是字节
不是函数
(下面的例子说明)
1.sizeof //有的时候()可以去掉例如sizeof a 但只有是符号的时候才行
例子里面的int 就不能去括号哈!
不能写出sizeof int
2.一个表达式放在函数参数部分的时候会参与计算
而sizeof ()里面的表达式不会参与计算

例子一演示

#include<stdio.h>
int main()
{
	int a = 3;
	printf("%d\n", sizeof(a));
	printf("%d\n", sizeof(int));

	return 0;
}

在这里插入图片描述

#include<stdio.h>
int main()
{
	int a = 3;
	printf("%d\n", sizeof a);
	printf("%d\n", sizeof(int));

例子二演示

#include<stdio.h>
int main()
{
	short s = 3;
	int a = 5;
	printf("%d\n", sizeof(s = a + 5));//2
	printf("%d\n", s);//3
    return 0;
}

在这里插入图片描述
具体解释

test.c ====== test.exe
转换之间
需要编译+链接
编译的时候2已经算出来了
但是s=a+5是在程序运行的时候才计算
//即为产生了exe之后运行才计算的15

但是编译的时候已经处理掉了
那个时候不放 sizeof(s = a + 5)
而只放了2
sizeof 处理时机远远早于计算时间
就是这个意思啦!

复盘

新版的vs2019 没啥感觉
我反而觉得比原来慢了。但我这次都没有完全安装,怎么比原来还慢,我无语了。
界面好看了点,顺眼很多了。
然后我昨天写的笔记丢了。我气!!!

我今天还得再看一遍讲解再写一遍,不过主要是还是我没懂,要是都会也不用记笔记了。

我下次再删废纸篓里的笔记我是*** 。

今天微博还中奖了,难道是因为节日快乐???

发布了34 篇原创文章 · 获赞 8 · 访问量 6737

猜你喜欢

转载自blog.csdn.net/weixin_45271990/article/details/104739593