C语言review之指针

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言review之指针相关的知识,希望对你有一定的参考价值。

1.一元运算符* 、&优先级比运算符的优先级高。

  eg.*ip += 1 等同于 ++*ip 或者(*ip)++

  注意,(*ip)++ 必须加括号,因为类似*和++这样的一元运算符遵循从右到左的顺序。 

2.【指针与数组】计算数组元素a[i]的值,c语言实际上先将其转换为*(a+i)的形式,然后再求值。

  eg.a[i] 与 *(a+i)、&a[i] 与 a+i 等价

  注意,数组名与指针之间的一个不同,指针是一个变量,{pa = a,pa ++}是合法的,{a = pa,a++}是不合法的。

3.【指针与数组】

char *amessage [] = "now is the time";/*1*/
char *pmessage = "now is the time";/*2*/

  第一行:amessage 是一个存放初始化字符串及空字符‘\0‘的一维数组;单个字符可以修改;amessage 始终指向同一个存储位置。

  第二行:pmessage 是一个初始值指向一个字符串常量的指针;单个字符修改操作没有意义;pmessage 可以被修改指向其他地址。

4.【自增与自减运算符】后缀与前缀

1 if(s[i] != c)
2     s[j++] = s[i];

等价于

if(s[i] != c){
    s[j] = s[i];
    j++; 
}

 

以上是关于C语言review之指针的主要内容,如果未能解决你的问题,请参考以下文章

C语言之函数指针用法总结

为啥在访问二级指针时出现分段错误错误? C语言

C语言函数指针之回调函数

C语言之数组指针指针数组

C语言之数组指针指针数组

C语言之深入解析如何理解指针和结构体指针指针函数函数指针