C语言易错小贴士

1.数组建立以及strlen:

char arr1[]="bit";
char arr2[]={'b','i','t'};
char arr3[]={'b','i','t','\0'};

1)其中arr1数组需要注意默认为4个字符,和arr3包含的内容是一致的;

2)arr2末尾没有\0,后面是数组越界的过程,会产生随机值,如果用strlen计算的话,计算的结果为随机值,因为无法确定\0的位置;

3)strlen函数返回值为size_t为无符号数;

2.getchar

1)getchar返回值为字符的ascll码值,返回为整数类型;

2)getchar如果读取失败或者结束,则返回EOF;这里还存在缓存区。之后细谈;

3.sizeof与数组

1)sizeof(arr)代表数组总共占得字节,sizeof(arr[1])表示一个元素的字节大小;

2)数组建立时,数组是随着下标的增加,由低地址到高地址前进建立的

&arr[0]=012ffe9c;
&arr[1]=012ffea0;
&arr[2]=012ffea4;

但在存储中,是由下到上是低地址到高地址,也就是说,数组的建立是从下向上建立的;

4.二维数组

arr[10][10];其中arr[1]表示arr[1][0]的地址;对应的arr[1]+1,我们就不难理解就表示arr[1][1]的地址;sizeof(arr[0])抽象来说就是这一行,sizeof(arr[0][0])这个表示一个,sizeof(arr)表示二维数组整个;

5.位操作符

1)&---按位与---0是老大;

2)|---按位或---1是老大;

3)按位异或---同0异1;

6.int*arr[10]和int(*arr[10])的区别

1)前者为指针数组,是元素为指针的数组,后者是数组指针,是指向arr[10]首元素地址的指针;

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

胖胖龙大兄很忙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值