class X
{
//int i;
//int j;
//char k[10];
//int g();
//float k(int a,int b);
//float f;
char i;
int j;
int c;
};
void main()
{
int len;
char* ss = "0123456789";
X x;
len=sizeof(ss) ;//结果 4 ===》ss是指向字符串常量的字符指针
printf("sizeof(ss)=%d\n",len);
len=sizeof(*ss); //结果 1 ===》*ss是第一个字符
printf("sizeof(*ss)=%d\n\n",len);
char ss1[] = "0123456789";
len=sizeof(ss1);// 结果 11 ===》ss是数组,计算到\0位置,因此是10+1
printf("sizeof(ss1)=%d\n",len);
len=sizeof(*ss1);// 结果 1 ===》*ss是第一个字符
printf("sizeof(*ss1)=%d\n\n",len);
char ss2[100] = "0123456789";
len=sizeof(ss2);// 结果是100 ===》ss表示在内存中的大小 100×1
printf("sizeof(ss2)=%d\n",len);
len=strlen(ss2);// 结果是10 ===》strlen是个函数内部实现是用一个循环计算到\0为止之前
printf("sizeof(*ss2)=%d\n\n",len);
int ss3[100] ={0,1,2,3,4,5,6,7,8,9};
len=sizeof(ss3);//结果 400 ===》ss表示再内存中的大小 100×4
printf("sizeof(ss3)=%d\n\n",len);
//strlen(ss4);// 错误 ===》strlen的参数只能是char* 且必须是以''\0''结尾的
//printf("sizeof(*ss4)=%d\n",len);
char q[]="abc";
char p[]="a\n";
printf("sizeof(q)=%d\nsizeof(p)=%d\nstrlen(q)=%d\nstrlen(p)=%d\n\n",sizeof(q),sizeof(p),strlen(q),strlen(p));
printf("sizeof(X)=%d\nsizeof(x)=%d\n\n",sizeof(X),sizeof(x)); // 12 12
char *test="asf\0";
len=strlen(test);
printf("strlen(test)=%d\n",len); //结果是3
char *test1="asf\n";
len=strlen(test1);
printf("strlen(test1)=%d\n",len); //结果是4
float f();
printf("float f()=%d\n",sizeof(f()));
}
阅读(527) | 评论(0) | 转发(0) |