找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5238|回复: 2
收起左侧

笔记:C语言深度解剖

[复制链接]
ID:60266 发表于 2014-8-18 02:42 | 显示全部楼层 |阅读模式
第一章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)
}


回复

使用道具 举报

ID:1 发表于 2017-6-13 20:49
C语言深度解剖 全书下载地址:http://www.51hei.com/bbs/dpj-57779-1.html

ID:26188 发表于 2014-8-22 00:20 来自手机 | 显示全部楼层
这本书,我读过,不错
回复

使用道具 举报

ID:243067 发表于 2017-10-26 11:44 | 显示全部楼层
沒有看過,下來看看
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表