c语言容易混淆的知识点,C语言中的几个容易混淆的知识点总结

1、指针数组与数组指针

(1)int* q[10]; 指针数组,声明一个指向含有10个整型指针元素的数组。

(2)int  (*p)[10];  数组指针,声明一个指向10个整型数组的指针。

指针数组是元素为指针的数组,而数组指针是元素为指向数组的指针。

2、函数指针与指针函数

(1)int (*p)max(int a,int b);   函数指针,p为指向参数类型为int,int,返回值为int的函数,可以将该类型的函数作为首地址赋值给p。

(2)int * max(int a,int b);    指针函数,返回值为指针类型的函数被称作指针函数。

3、用字符串常量初始化指针与数组

(1)char *p= “gooseberry”; 字符指针,初始化指针时所创建的字符串常量被定义为只读,如果试图通过指针修改这个字符串值,程序会出现未定义的行为。

(2) char a[] = “gooseberry”;字符数组,与指针相反,由字符串常量初始化的数组是可以修改的。比如下面的语句:

strncpy(a,"black",5);将数组的值改为blackberry。

4、常量指针与指针常量

(1)常量指针:指向常量的指针,指针所指向地址的内容是不可被修改的。

const int *pi=&a;或者int const *pi, *pi是常量,不能将*p作为左值进行操作。

(2)指针常量:不可修改地址的指针,但是可以对其指向的地址的内容进行修改。还有,指针常量在定义时必须同时赋值,指针常量也不能释放。

定义" int *const pi=&a;",pi是常量,不能作为左值进行操作,但是允许修改间接访问值,即*pi可以被修改。

本文同步分享在 博客“雪域迷影”(CSDN)。

如有侵权,请联系 support@oschina.cn 删除。

本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值