第一章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)
}
|