为什么输出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;
}
0
收起
正在回答
1回答
你好,sizeof有三种语法形式:
1) sizeof (object); //sizeof (对象)
2) sizeof object; //sizeof 对象
3) sizeof (type_name); //sizeof (类型)
对象可以是各种类型的变量,以及表达式(一般sizeof不会对表达式进行计算)。
sizeof对对象求内存大小,最终都是转换为对对象的数据类型进行求值。
sizeof (表达式); //值为表达式的最终结果的数据类型的大小
举例:
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,
建议使用不同环境运行测试,如果解决您的问题请采纳,祝学习愉快!
C++零基础入门 热门编程语言 二级考试必备
- 参与学习 529 人
- 提交作业 110 份
- 解答问题 594 个
无论您是零基础、还是想晋升,亦或是想转型,C++无疑都是最佳选择。本路径共分为基础语法、指针与引用、面向对象三大模块,为你开启入门C++编程的大门!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星