C和指针---读书笔记。
C和指针---读书笔记。
1,unsigned int 声明无符号int类型 默认是 singned,即此整数类型包括正负数。也可用于long上。
说明符有 unsigned signed short long
2,枚举 enum jump{cpu = 100, a = 2};
3,for 循环的执行顺序,,for( expression1; expression2, expression3){statement;}
expression1->expression2->statement->expression3->expression2->statement->expression3->.....重复此过程直到不满足条件。
4,C中的 switch(expression){statement},expression只能是整数。
5,goto,,可以跳出多组循环,break不可以。
6,C里面 ,if(i) i 必须是int或float类型,除0外其他数值都为真。
7,所谓短路求值就是 expression1 && expression2,如果expression1为假,则不执行expression2,同理 expression1 || expression2,如果expression1 为真,则表达式为真,不执行expression2。这种只执行expression1就得出结论的判断语句被称为"短路求职"。
8,指针。
int a = 112, b = -1;
float c = 3.14;
int *d = &a;
float *e = &c;
printf("d = %i\n", d);
printf("d = %p\n", d);
printf("*d = %p\n", *d);
printf("*d = %d\n", *d);
*d = 23;
printf("a=%d\n", a);
注意 占位符%i就是打印值,%p是打印指针,也就是存值的地址。注意指针也有自己的地址。*d = 9,在对指针进行间接操作之前,确定它们已经被初始化。*d = &a,,确定a已初始化。
10,int a;
int *d = &a;
*d = 10 - *d;
d = 10 - *d;
倒数第二行,与a = 10 - a,是一个意思。最后一行,d = 10 - *d是错误的,因为d不是整型,d是一个指针,没人知道或没人在乎它的值。
10,左值与右值。
左值右值基本信息编辑
C/C++语言中可以放在赋值符号左边的变量,即具有对应的可以由用户访问的存储单元,并且能够由用户去改变其值的量。左值表示存储在计算机内存的对象,而不是常量或计算的结果。或者说左值是代表一个内存地址值,并且通过这个内存地址,就可以对内存进行读并且写(主要是能写)操作;这也就是为什么左值可以被赋值的原因了。相对应的还有右值:当一个符号或者常量放在操作符右边的时候,计算机就读取他们的“右值”,也就是其代表的真实值。简单来说就是,左值相当于地址值,右值相当于数据值。右值指的是引用了一个存储在某个内存地址里的数据。
比如。
int a=3;
const int b=5;
a=b+2; //a是左值,b+2是右值
b=a+2; //错!b是只读的左值但无写入权,不能出现在赋值符号左边
(a=4)+=28; //a=4是左值表达式,28是右值,+=为赋值操作符
34=a+2; //错!34是字面量不能做左值
最新文章
- Make Helix Curve in OpenCASCADE
- 最近学习linux命令的一个总结
- QQ揭秘:如何实现托盘闪动消息提醒?【低调赠送:QQ高仿版GG 4.1 最新源码】
- 读书笔记_Effective_C++_条款四十五:运用成员函数模板接受所有兼容类型
- 观察器observes与对象初始化
- 使用Antlr实现简单的DSL
- IOS 手势事件的冲突
- 大型项目 Gradle 的常用库和版本管理[转]
- iOS 网络与多线程--8.百度地图的使用(调用系统浏览器)
- RMAN之一:快速入门
- 2014.9.16HTML表单CSS
- Linux系统基础命令
- Effective java -- 2 对于所有对象都通用到方法
- Java 伪静态 Mapping
- jQuery事件绑定、解绑、命名空间
- 深入浅出了解OCR识别票据原理
- ROS(indigo)机器人操作系统学习有趣丰富的Gazebo仿真示例evarobot
- Linux切换为超级用户的命令
- Django模型层-多表操作
- ASP.NET 4.0 :MasterPage母版页的ClientIDMode属性