c语言中经常出错,混淆的地方

本文详细解析了C语言中指针操作符的使用规则,包括递增递减操作和地址运算,以及如何正确理解这些操作对于数组的影响。同时,文章还探讨了字符输入时的常见误区,特别是使用%c格式符时的注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

、指针相关

*p++,由于++*同优先级,结合方向自右而左,等价于*(p++)

*(p++)*(++p)作用不同。若p的初值为a,则*(p++)等价a[0]*(++p)等价a[1]

(*p)++表示p所指向的元素值加1

 

如果p当前指向a数组中的第i个元素,则 

*(p--)相当于a[i--]

*(++p)相当于a[++i]

*(--p)相当于a[--i]

、输入

输入字符的格式与要求不一致。

在用“%c”格式输入字符时,“空格字符”和“转义字符”都作为有效字符输入。

scanf("%c%c%c",&c1,&c2,&c3);

如输入a b c,字符“a”送给c1,字符“ ”送给c2,字符“b”送给c3,因为%c只要求读入一个字符,后面不需要用空格作为两个字符的间隔。

、变量定义

1、定义数组时误用变量。

int n;

scanf("%d",&n);

int a[n];

数组名后用方括号括起来的是常量表达式,可以包括常量和符号常量。即C不允许对数组的大小作动态定义



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值