总结:sizeof(pStu->name)求的是成员name的 size,而sizeof(pName)求的是数组指针的 size,两者完全不同,不可以混淆。
另外,sizeof可以用于计算任意数据类型的大小,包括基本数据类型和自定义数据类型。 而strlen只能用于计算字符串的长度。 因此,sizeof通常用于确定数组所占的存储空间,而strlen用于确定字符串的长度。 2、数组和指针 数组- 能够存放一组相同类型的元素,数组的大小取决于数组的元素个数和元素类型。 指针就是地址,大小都是...
}//从这里也可以看出数组和指针并非完全的等价//注意sizeof不是函数,属于关键字
C和指针之数组名和&数组名和&首元素以及sizeof(数组名)和sizeof(数组名作为参数)区别 【摘要】 1、先看我的测试Demo #include <stdio.h>#include <stdlib.h> int get_size(int *p){ int size = sizeof(p); return size;} int main(){ int a[6] = {1, 2, 3, 4, 5, 6}; int b[] = ...
两者的关键区别在于:sizeof计算整个数组或字符串的大小,包括终止符;而strlen只计算到遇到的首对空字符'\0'前的字符数量。在数组运算中,sizeof数组名返回整个数组的大小,而数组名本身或取地址符(&)则表示整个数组或首元素的地址。对于一维和二维数组,sizeof会计算所有元素的总空间,而数组名通常表示...
有上可见两者区别: sizeof的功能是计算一个数据类型的大小,这个类型可以是数组、函数、指针、对象等,单位为字节,它的返回值是size_t类型,也就是unsigned int类型,是一个无符号整数。注意:sizeof不是一个函数,它是一个运算符,所以它不需要包含任何头文件。
堆和栈的区别 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回 ...
strlen 和 sizeof 的区别: sizeof(...)是运算符,在头文件中typedef为unsigned int,其值在编译时即计算好了,参数可以是数组、指针、类型、对象、函数等。 它的功能是:获得保证能容纳实现所建立的最大对象的字节大小。 由于在编译时计算,因此sizeof不能用来返回动态分配的内存空间的大小。实际上,用sizeof来返回...
c语言 字符数组、字符指针、sizeof strlen的区别为:数据长度不同、操作不同、所占空间不同。 一、数据长度不同 1、字符数组:字符数组需要在初始化时就定义字符数组的数据长度。 2、字符指针:字符指针的数据长度由指针指向的字符数据决定。 3、sizeof strlen:sizeof strlen自动确定sizeof strlen的数据长度。