Chinaunix首页 | 论坛 | 博客
  • 博客访问: 124511
  • 博文数量: 70
  • 博客积分: 2510
  • 博客等级: 少校
  • 技术积分: 380
  • 用 户 组: 普通用户
  • 注册时间: 2009-11-24 18:53
文章分类
文章存档

2015年(8)

2014年(14)

2011年(1)

2010年(21)

2009年(26)

我的朋友

分类:

2009-12-13 00:02:03

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()));
}
 
 
阅读(492) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~