1楼:金色潜鸟
sizeof 是运算符,用于计算 某种变量类型 或 某变量 占内存的 字节数。
可用于普通的 int, float,double,char 等类型,也可用于 class, struct, union 等类型。
用于数组名,则测定以这个名字命名的数组 占内存的 字节数。
用于指针,则测定指针自身 占内存的 字节数。通常计算机,指针自身 占内存都是4字节。
例如:double x[4];
double *p=x;
printf("%d\n",sizeof(double));
printf("%d %d\n",sizeof(x), sizeof(p));
输出:8 //double 型占 8字节
32 4 //数组x 占32字节 ,指针 p 占 4字节
c语言中数组名和指针的区别 及 sizeof用法
2楼:匿名用户
指针需要给一个明确的指向才能使用,否则就是一个野指针。
数组名就是一个有明确指向的指针。
数组名有点类似于const指针。比如:
int a[10]=;
a就类似于const int * p = a;
另外,指针的sizeof就是4字节(视系统而定,一般4字节);数组名的sizeof就是这个数组的整个size。
比如:sizeof(p) = 4; sizeof(a) = 10*sizeof(int);
c语言中数组名和指针的区别
3楼:匿名用户
数组在当作参数传递时,可以当作指针;当然,参数传递相当于赋值操作,所以用指针来接受数组的值也是可以的。
除此之外,指针就是指针,数组就是数组,一点也不一样,例如1,数组名不能作为左值,即不能被赋值,也不能进行++ --操作2,sizeof 数组名 和 sizeof 指针 不同
4楼:
数组名本质上就是个指针,也就是地址,但是它是一个常指针,是个固定值,而指针是是指针变量的简称,是个变量,这个变量存放的是地址值,它的值是可以改变的。例如:
int*p;
inta,b;
p=&a;//把变量a的地址赋值给指针p,那么指针p就指向了变量a的内存单元
p=&b;//把变量b的地址赋值给指针p,那么指针p就指向了变量b的内存单元
inta[10];//整型数组,数组名a本质上是一个地址,是首元素地址,它是一个固定值,不能对它进行赋值操作。
c语言中数组名和指针变量的区别,C语言中数组名和指针的区别
1楼 销 数组名除了sizeof会返回数组大小,其他的实况下是相当于一个指针常量无区别的 指针常量也就是说,不能改变数组名的值,比如int a 10 a a a a 10等都是非法的 c语言中数组名和指针的区别 2楼 匿名用户 数组在当作参数传递时,可以当作指针 当然,参数传递相当于赋值操作,所以用...
“指针的类型”和“指针所指向的类型”有什么区别
1楼 匿名用户 你说的对,在32机器里,指针的容量就是4字节的。指针的类型实际上就是指针所指向的变量的类型。 为什么在声明指针的时候要声明出它所指向的变量的类型呢? 因为,例如 int p 在以后的程序中有可能要做 int a p的操作,所以 ,即取值操作就要知道p所指向的空间里存放的变量的类型,根...
C语言中的“行指针”与“元素指针”有什么区别
1楼 键盘雀跃 int a 4 1 2 3 4 a 0 a 1 a 2 a 3 a是一维数组名,代表数组的首地址 也就是a 0 a 1 指针移动2个字节,指向下一个数组元素,就是a 1 int a 3 4 a 4 或a 4 或a 3 4 都可以表示行指针 操作a是二维数组名,代表二维数组的首地址,也...