#include <stdio.h>
#include <string.h>
void fun(char c[])
{ printf("%d\n" , sizeof(c)); }
void fun2(char &c)
{ printf("%d\n" , sizeof(c)); }
void fun3(char(&c)[9])
{ printf("%d\n" , sizeof(c)); }
int main()
{
char c[] = "12345678";
// char *c = "12345678";
printf("%d\n" , sizeof(c));
fun(c);
fun2(*c);
fun3(c);
return 0;
}
char c[] = "12345678"; // 分配9个空间,然后赋值,"1234" "5678" '\0' 分三次赋值
char *c = "12345678"; // 定义一个指针,分配四个空间存放指针地址,把指针指向了常量字符串
c[],开始的时候内存里是乱数,然后再初始化成 "12345678"
*c, 开始是个野指针,指向一个随机地址,地址里存的是乱数,然后经过初始化,指向了常量字符串,可以看到常量字符串里的内容"12345678"
char c[] = "12345678"; // 分配9个空间,然后赋值,"1234" "5678" '\0' 分三次赋值
char *c = "12345678"; // 定义一个指针,分配四个空间存放指针地址,把指针指向了常量字符串
c[],开始的时候内存里是乱数,然后再初始化成 "12345678"
*c, 开始是个野指针,指向一个随机地址,地址里存的是乱数,然后经过初始化,指向了常量字符串,可以看到常量字符串里的内容"12345678"
本文通过几个具体的示例程序详细解释了C语言中sizeof运算符的作用与使用方法,并对比了不同参数传递方式下sizeof运算符的行为差异。

被折叠的 条评论
为什么被折叠?



