不管是什么类型的指针,相当于sizeof(char* )= 4printf("sizeof(*p) = %d\n",sizeof(*p));//*p是P所指向的那个内存空间里存储的内容,数组名所表示的是一个数组的首地址,//也可以理解成数组首元素的地址,所以*p的内存空间就是1,相当于sizeof(char) = 1printf("strlen(p) = %d\n",...
如果是 int 型的指针,那么编译器就会产生提取四个字节的指令,char 则只提取一个字节,以此类推。下面...
sizeof(str) //字符串的长度(不包含最后的\0), 占5个字节 例子2:char str[] = "hello"; char *p = str;//str做右值,相当于首元素的首地址,数组的元素是char型, //那么str就是char *,刚好匹配 sizeof(p) //p本身是一个指针变量,跟p指向的变量一点关系没有;只是一个char *指针的长度, //32位...
诺诺,运行结果不是预期中的结果啊。其实,函数print形参看上去像是一个数组,于是有的朋友就会认为它就是一个数组,于是就发生了使用sizeof来计算数组长度;真实情况是print函数的参数还是一个指针,指针,指针,没错,就是一个指针,所以sizeof(number)计算的还是指针的大小。初学的朋友们一定要切记!
对于指针和数组,sizeof 的作用略有不同。 指针:sizeof 用于计算指针变量所占用的内存大小。无论指针指向何种类型的数据,指针本身所占用的内存大小是固定的。在 32 位系统中,指针通常占用 4 字节(32 位),而在 64 位系统中,指针通常占用 8 字节(64 位)。 示例: int *ptr; std::cout << "Size of ptr:...
int size = sizeof(arr); //计算数组arr的大小 ``` 那么,对于一个指向数组的指针,如何计算其指向的数组的大小呢?答案是:同样使用sizeof运算符来计算。 对于一个指向数组的指针,我们可以使用下标运算符来访问其所指向的元素,例如: ```c int arr[10]; int *p = arr; //指向数组arr的指针 int num = ...
数组是数组,指针是指针,二者不等价 1.数组名是数组首元素的地址,这个地址就可以存放在指针变量中 2.我们就可以使用指针变量来遍历数组 🚀数组名的注意事项: 1.通常情况: 大部分情况下数组名是数组首元素的地址 2.例外 1.sizeof(数组名) - 数组名表示整个数组,计算的是整个数组的大小 ...
数组、指针与sizeof( ) 运算符 这篇文章主要介绍sizeof( )运算符的用法 1.sizeof() 和 strlen() (1)sizeof()是一个运算符,如同加减乘除,返回数据类型或者变量的内存大小。 (2)strlen()是一个C库函数,返回字符串的长度。 2.char str[] = “hello”...
增加了一个指针变量p,指针变量p的初始值是数组首元素的地址。有的朋友企图用sizeof(p)来获取数组长度,这是不对的,请看结果: 从结果可以看到,sizeof(p)其实计算的是指针变量p的类型的大小。指针p的类型是指向整数类型的指针,因此其大小为4,所以这样做是不对的。(这段话有知友指出描述错误。作者在文末已作出...