c语言 *p++与(*p)++、*(p++)三者异同?

本文详细解释了C++中指针运算符`p++`与`(*p)++`的不同作用,通过实例演示帮助读者深入理解它们在内存操作中的区别。

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

1.*p++与*(p++)是等价的,表示取p所指单元的值,p指向下一单元,即p自加1。

2.(*p)++表示取p所指单元的值,这个单元的值自加1。

大家可以写个小程序自测一下。

    设有说明语句:char a[]=”It is mine”;char *p=”It is mine”;则以下不正确的叙述是 . A)a+1表示的是字符t的地址 B)p指向另外的字符串时,字符串的长度不受限制 C)p变量中存放的地址值可以改变 D)a中只能存放10个字符 设有程序段:char s[10]=”china”; char *p ; p=s ;则下面叙述正确的是 。 A)sp完全相同 B)数组s中的内容指针变量p中的内容相等 C)s数组长度p所指向的字符串长度相等 D)*ps[0]相等 下面判断正确的是 。 A)char *a=”china”; 等价于 char *a; *a=”china” ; B)char str[10]={“china”}; 等价于 char str[10]; str[ ]={“china”} ; C)char *s=”china”; 等价于 char *s; s=”china” ; D)char c[4]=”abc”,d[4]=”abc”; 等价于 char c[4]=d[4]=”abc” ; 若已定义char s[10];则在下面表达式中不表示s[1]的地址是 。 A)s+1 B)s++ C)&s[0]+1 D)&s[1] 若有定义:int a[5],*p=a;则对a数组元素的正确引用是 。 A)*&a[5] B)a+2 C)*(p+5) D)*(a+2) 若有定义:int a[5];则a数组中首元素的地址可以表示为 。 A)&a B)a+1 C)a D)&a[1] 以下正确的说明语句是 。 A)int *b[]={1,3,5,7,9} ; B)int a[5],*num[5]={&a[0],&a[1],&a[2],&a[3],&a[4]}; C)int a[]={1,3,5,7,9}; int *num[5]={a[0],a[1],a[2],a[3],a[4]}; D)int a[3][4],(*num)[4] ; num[1]=&a[1][3]; 若有定义:int x[10]={0,1,2,3,4,5,6,7,8,9},*p1;则数值不为3的表达式是 。 A)x[3] B)p1=x+3,*p1++ C)p1=x+2,*(p1++) D)p1=x+2,*++p1 若有定义int a[4][6];则能正确表示a数组中任一元素a[i][j](i,j均在有效范围内)地址的表达式 。 A)&a[0][0]+6*i+j B)&a[0][0]+4*j+i C)&a[0][0]+4*i+j D)&a[0][0]+6*j+i 下面程序的运行结果是 。 main ( ) { int x[5]={2,4,6,8,10}, *p, **pp ; p=x , pp = &p ; printf(“%d”,*(p++)); printf(“%3d”,**pp); } A)4 4 B)2 4 C)2 2 D)4 6 const char *p、char const *p、char *const p 有什么区别?(北京信果科技) 以下为linux下的32位C程序 (飞音时代)   char str[] = "Hello"; char *p = str; int n = 10; 请计算: (1) sizeof(str) = ________ (2) sizeof(p) = ________ (3) sizeof(n) = ________
    04-01
    评论 1
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

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

    抵扣说明:

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

    余额充值