打印

C语言深度解剖

[复制链接]
841|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
拿起书本|  楼主 | 2014-10-31 16:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
第一章C语言标准定义的32个关键字:
sizeof(计算对象所占内存空间大小),char(一个字节),long(long int 一个字长),int(32与64位机器上为4字节,8位机器上为2字节),short( 32与64位机器上为2字节,8位机器上为1字节),longlong(32与64位机器都为8字节),float(4),double(8),const,volatile,goto,extern(声明变量是在其他文件中声明)...
备注:char* ( 32位机器上为4字节,64位机器上为8字节,也就是字长)
char str[10] ={1,2,3,4,5,6,7,8,9,10}; sizeof(str) =10; strlen(str)= 415;
char str[10] = {1,2,3,4,5,6,7,8,9,0}; sizeof(str) = 10; strlen(str)=9;
char str[10] = “dasfad”;
int main()
{
char a[1000];
int i;
for(i=0; i<1000; i++)
{
a[i] = -1-i;
}
printf("%d",strlen(a)); //这里等于多少? 255这个就很好的说明了strlen的计算。strlen用来统计字符串的长度,遇到'\0'(0)停止计数,表示‘\0’(0)占有多少个字节(因为是为字符串统计的,所以是字符,字节),如果 改为int a[1000] 结果为1020
return 0;
}

////////////////
void fun(int c[100])
{
printf("%d\n",(int)c);// 形参为一个数组
printf("%d\n",sizeof(c)); //这里的值为4(32位机) 因为形参这里被转换成一个指向int的地址,                              并不是一个含有100个int的数组地址,-> int * c;所以计算长度时为                              4,但同样可以以c[50]这样的方式访问数组,因为才c[50] 这个形式在                               访问时是要经过转换的,转换成地址 *(c +50)
}


相关帖子

沙发
elecintop| | 2014-11-30 13:35 | 只看该作者
:handshake

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:好好学习,天天向上!

519

主题

4194

帖子

31

粉丝