【发布时间】:2018-04-21 22:39:10
【问题描述】:
#include<iostream>
using namespace std;
int main(){
double a;
double b[10];
char *c;
char r[12]="appleeeeeee";
c=r;
cout<<sizeof c<<endl; //Why is this 8 and not equal to 12 i.e sizeof(r)
cout<<sizeof r;
}
q1。数组名不是指向数组开头的指针吗?如果是这样,那么为什么 sizeof 运算符在上面的代码中会计算出两个不同的值。
即为什么sizeof c 产生 8 而sizeof r 产生 12 即使它们都是指向字符的指针。
为什么第二种情况会打印数组r[12]的大小?
这个问题可能看起来像 this 的重复,但它没有回答我的问题。
【问题讨论】:
-
@DietmarKühl 我认为您提供的副本有所帮助。谢谢!