c语言编程的难点,c语言编程的难点

c4468b3f4df77e96b0a416fa2a870fba.png

1. 指针是c语言中一个重要的组成部分,使用指针编程有以下长处:

(1)提高程式的编译效率和执行速度。

(2)通过指针可使用主调函数和被调函数之间共享变量或数据结构,便于实现双向数据通讯。

(3)能够实现动态的存储分配。

(4)便于表示各种数据结构,编写高质量的程式。

2. 指针的运算

(1)取地址运算符&:求变量的地址

(2)取内容运算符*:表示指针所指的变量

(3)赋值运算

·把变量地址赋予指针变量

·同类型指针变量相互赋值

·把数组,字符串的首地址赋予指针变量

·把函数入口地址赋予指针变量

(4)加减运算

对指向数组,字符串的指针变量能够进行加减运算,如p n,p-n,p ,p--等。对指向同一数组的两个指针变量能够相减。对指向其他类型的指针变量作加减运算是无意义的。

(5)关系运算

指向同一数组的两个指针变量之间能够进行大于、小于、 等于比较运算。指针可和0比较,p==0表示p为空指针。

3. 和指针有关的各种说明和意义见下表。

int *p;     p为指向整型量的指针变量

int *p[n];   p为指针数组,由n个指向整型量的指针元素组成。

int (*p)[n];  p为指向整型二维数组的指针变量,二维数组的列数为n

int *p()    p为返回指针值的函数,该指针指向整型量

int (*p)()   p为指向函数的指针,该函数返回整型量

int **p     p为一个指向另一指针的指针变量,该指针指向一个整型量。

4. 有关指针的说明很多是由指针,数组,函数说明组合而成的。

但并不是能够任意组合,例如数组不能由函数组成,即数组元素不能是个函数;函数也不能返回一个数组或返回另一个函数。例如

int a[5]();就是错误的。

5. 关于括号

在解释组合说明符时, 标识符右边的方括号和圆括号优先于标识符左边的“*”号,而方括号和圆括号以相同的优先级从左到右结合。但能够用圆括号改变约定的结合顺序。

6. 阅读组合说明符的规则是“从里向外”。

从标识符开始,先看他右边有无方括号或园括号,如有则先作出解释,再看左边有无*号。 假如在任何时候碰到了闭括号,则在继续之前必须用相同的规则处理括号内的内容。例如:

int*(*(*a)())[10]

↑ ↑↑↑↑↑↑

7 6 4 2 1 3 5

上面给出了由内向外的阅读顺序,下面来解释他:

(1)标识符a被说明为;

(2)一个指针变量,他指向;

(3)一个函数,他返回;

(4)一个指针,该指针指向;

(5)一个有10个元素的数组,其类型为;

(6)指针型,他指向;

(7)int型数据。

因此a是个函数指针变量,该函数返回的一个指针值又指向一个指针数组,该指针数组的元素指向整型量。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值