为什么输出s的大小为4
#include <iostream>
#include <string>
using namespace std;
int main()
{
char sd[][10]={"begin","moring","afternoon"};
//定义数组指针
char (*s)[10]=sd;
//使用数组指针输出字符串
for(int i=0;i<3;i++,s++)
{
cout<<*s<<endl;
}
cout<<sizeof(s);
return 0;
}
正在回答
你好,sizeof有三种语法形式:
1) sizeof (object); //sizeof (对象)
2) sizeof object; //sizeof 对象
3) sizeof (type_name); //sizeof (类型)
对象可以是各种类型的变量,以及表达式(一般sizeof不会对表达式进行计算)。
sizeof对对象求内存大小,最终都是转换为对对象的数据类型进行求值。
sizeof (表达式); //值为表达式的最终结果的数据类型的大小
举例:
1 2 3 4 5 6 7 8 9 | int i; sizeof ( int ); //值为4 sizeof (i); //值为4, 等价于 sizeof ( int ) sizeof i; //值为4 sizeof (2); //值为4, 等价于 sizeof ( int ),因为2的类型为 int sizeof (2 + 3.14); //值为8,等价于sizeof(double), 因为此表达式的结果的类型为 double char ary[ sizeof ( int ) * 10]; //OK,编译无误 |
老师运行您的代码结果为8,
建议使用不同环境运行测试,如果解决您的问题请采纳,祝学习愉快!
- 参与学习 529 人
- 提交作业 110 份
- 解答问题 593 个
无论您是零基础、还是想晋升,亦或是想转型,C++无疑都是最佳选择。本路径共分为基础语法、指针与引用、面向对象三大模块,为你开启入门C++编程的大门!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧