潍坊网站建设选聚搜网络好,电脑买编程代码做网站,四川专业网站建设费用,网站建设如何避免陷入模仿误区提高指针效率以及程序可读性
为什么要后置运算符#xff1f; 有C语言编程经验的人可能会感到疑问#xff0c;为什么在C里面我们推荐优先使用运算符的前置版本#xff0c;就是把运算符号放在变量的前面#xff0c;前置版本的递增避免了不必要的工作#xff0c;它将值加一后…提高指针效率以及程序可读性
为什么要后置运算符 有C语言编程经验的人可能会感到疑问为什么在C里面我们推荐优先使用运算符的前置版本就是把运算符号放在变量的前面前置版本的递增避免了不必要的工作它将值加一后直接返回了而如果你后置运算符它会把原始值存储下来以便于返回这个未修改的值。 简洁可以成为一种美德
cout*ipendl;cout*ipendl;
*ip;表达的意思都是一样的大多数C程序追求简洁
什么是指针
数据在内存中的地址也称为指针如果一个变量存储了一份数据的指针我们就称它为指针变量。
指针表达
#include iostreamusing namespace std;int main () {int var 20; // actual variable declaration.int *ip; // pointer variable ip var; // store address of var in pointer variablecout Value of var variable: ;cout var endl;// print the address stored in ip pointer variablecout Address stored in ip variable: ;cout ip endl;// access the value at the address available in pointercout Value of *ip variable: ;cout *ip endl;return 0;
}输出如下
$g -o main *.cpp
$main
Value of var variable: 20
Address stored in ip variable: 0x7ffe8c789054
Value of *ip variable: 20var前面加上了取地址符号采用拷贝赋值的方式给ip此时ip代表的就是存放var的地址。
符号含义*p我对你地址是多少不关心我关心的是你里面存放的内容p我对你里面的内容不关心我关心的是你的地址
这里我们在和上文中提到的运算符号结合做一个延伸
符号含义* (p)与*p将指针的值加一后在去探寻地址里面到底放了什么东西(*p)将地址里面放的东西的值加1
值得一提的是我们在C里要尽可能使用运算符号前置来提高程序运行的效率
指针与const
const指针底层const
指针不仅可以指向变量也可以指向常量const指向常量的指针不能改变所指对象的值但指针自己的值却可以改变即指向别的地方
顶层指针
指针自己就是一个常量但这并不意味着它不能改变所指对象的值就好比你有一把唯一的钥匙去打开唯一的一扇门不能打开其他的门但只要你打开了这扇门你就可以修改里面的东西了。