C语言指针运算

指针运算

指针可以加减运算,但不可以乘除运算。

在指针中 p++ 并不是加一,而是以素的值为单位加一,指向下一个单位,加多少字节  要看类型是什么。

在 指针变量名字前面加* 比如(*p) 反向得到*p指向元素的值。

 

例子1:

char msg[]="hello";
    char* p=msg;

    while (*p != '\0')
    {
        printf("%c\n",*p);
        p++;
    }

用指针遍历数组

创建一个char类型的数组并初始化赋值“ hello ”

创建一个指针遍历 p 存储数组的首地址(因为指针数组的特殊 所有不用&符号取地址也可以)

whlie循环 如果 *p 不等于 \0 就一直循环

以字符的形式打印 *p 所指向元素的值

p++ ( 在指针中不是加一,而是跳到下一个元素 )

形成循环一直遇到\0才结束循环

 

例子2:

int marks[]={70,80,95,65};
int* p=marks;
    printf("%d\n",*p);
p++;
    printf("%d\n",*p);

创建一个int类型的数组初始化并赋值{70,80,95,65}

创建一个int类型的指针变量 p ,把数组的首地址赋值给p(指针数组中可以不用加&符号取地址)

以十进制的形式打印 p 所指向元素的值;

p++ 以元素为单位加一(因为指针类型是int类型,所有一个元素等于4字节)

以十进制的形式打印 p 所指向元素的下一个值;

posted @   秋了个蝉  阅读(356)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
点击右上角即可分享
微信分享提示