前言
作者:大家好鸭,想必大家看到标题都有感到有一丝奇怪吧,其实,今天主要讲一些运算符
粉丝:啊……嗯嗯嗯
作者:那开始吧~~
内存地址运算符&
粉丝:讲这个干嘛,我都会了~~
作者:嗯?那么自信嘛?那我考考你,“&”可以翻译为什么~~
粉丝:额……可以……可以翻译为……为……嗯……
作者:哎,代表“取地址”~~那“&x”呢?
粉丝:x的地址~~
作者:昂,没错~~
数组和地址
作者:先看下面这一段代码
#include<iostream>
using namespace std;
int main(){
int f[3];
cout<<%f[0]<<endl;
cout<<%f[1]<<endl;
cout<<%f[2]<<endl;
cout<<f<<endl;
cout<<f+1<<endl;
cout<<f+2<<endl;
return 0;
}
粉丝:解释一下叭~\(^o^)/~
作者:好嘞,来看下面,输出结果和代码解释~~
int f[3];
f
数组名f记录数组0号元素的内存地址
f+1
f+1记录数组1号元素的内存地址
f+2
作者:现在应该知道是啥了叭~~
粉丝:f+2记录数组2号元素的内存地址
作者:昂~没错~~
指针
引用运算符“*”
作者:我在这里就不多写了,直接开始解释 ↓ ↓ ↓ ↓
“*”翻译为“指向的内容”
“*p”翻译为“p指向的变量值”
“int *p”翻译为“定义p为指向整数的指针”
“p=&x”翻译为“将x的地址赋值给p”,也就是“p指向了x”
作者:这里要注意一下,p代表pointer指针
粉丝:嗯嗯嗯~~
指针运算&和*
int x=8;
int *p;
p=&x;
*p=9;
cout<<x<<endl;
彩蛋
你们不会真以为这是什么彩蛋吧,其实我给大家留了道题目,可以做做看呐(蛮简单的)做完可以在评论区里留下你的代码哦~~
内存爆炸1
题目描述
众所周知,你写的程序会使用内存空间,如果使用太多内存,会超过允许的限制,所以我们一定要清楚自己的程序占用多少内容。例如:
定义数组int sum[100]; 会使用100个int类型变量,也就是100*4=400字节。
定义数组long long d[1000]; 会使用1000个long long类型变量,也就是1000*8=8000字节。
目前你希望给C++软件增加一个新功能:可以显示数组要使用多少内存。
输入格式
输入文件memory1.in 输入包含一行字符串,代表一条合法的一维数组定义,长度不超过100,形式如下: 类型名 数组名[元素个数]; 其中没有多余的空格。类型名可能有4种: 第一种char。每个char类型变量占1个字节。 第二种bool。每个bool类型变量占1个字节。 第三种int。每个int类型变量占4个字节。 第四种long long。每个long long类型变量占8个字节。 元素个数不超过10的18次方。
输出格式
输出文件memory1.out
输出一个数字,代表占用多少字节。
输入输出样例
输入样例:
int cnt[10];
输出样例:
40
输入样例:
char s[256];
输出样例:
256
总结
好了,今天的小课堂就到这里了,下期再见,拜了个拜~~