C语言细节总结笔记
C语言细节总结笔记
*/-->
C语言细节总结笔记
Table of Contents
1 三步异或法交换数字
a ^= b;
b ^= a;
a ^= b;
2 做差法交换数字
x=x+y;
y=x-y;
x=x-y;
3 按n位置位
先置0
a&=~(1<<n)
再置1/0,i为1或0
a|=(i<<n)
4 求余求商求积
求余
a&=7 a%=8
求商
a>>=3 a/=8
求积
a<<=3 a*=8
a=(a<<3)+a a*=9
5 辗除法求最大公约数
while(b!=0)/*利用辗除法,直到b为0为止*/
{
temp=a%b;
a=b;
b=temp;
}
printf("公约数:%d\n",a);
6 求数组元素个数方法
sizeof(a)/sizeof(a1)
7 运算符优先级
| 优先级 | 运算符 | 结合性 |
|---|---|---|
| 1 | () [] . -> | 从左到右 |
| 2 | -(符号) ~ ++ – *(指针) & ! (类型) sizeof | 从右向左 |
| 3 | * / % | 从左向右 |
| 4 | +(加) -(减) | 从左到右 |
| 5 | 从左向右 | |
| 6 | < <= > >= | 从左向右 |
| 7 | = ! |
从左到右 |
| 8 | &(安位与) | 从左到右 |
| 9 | ^ | 从左到右 |
| 10 | 按位或 | 从左到右 |
| 11 | && | 从左到右 |
| 12 | 逻辑或 | 从左到右 |
| 13 | ?: | 从右到左 |
| 14 | = += -= *= /= %= &= | 从右到左 |
| &= ^= ~= = >>>= | ||
| 15 | ,(逗号) | 自左到右 |
8 scanf处理字符串
scanf("%[\n]",str);
用到正则表达式
9 指针题
- 指针的加减法:
char a = 100;
char *p = &a;
若:p的地址为0x20008000,则
p+1=0x______; 0x20008001
*p + 1 =0x_____; 101(我写的是10进制)
(int )p + 1 = 0x______; 0x20008001
(int *)p + 1 = 0x______; 0x20008004
(char *)p + 1 = 0x______; 0x20008001
(char)p + 1 = 0x______; 1 - a &a &a+1
char a2;
a :=a1
&a :=a1 本质发生变化 数组地址 现象如下
&a+1 :=a2 - 指针
(*p)++
++(*p)
*(\\p)
*p
*(p++) - 设有二维数组
int a3, 4= {0, 1, 2, 3,4, 5, 6, 7, 8, 9, 10, 11};
请说明以下表示形式的的含义:
并写出地址值,设a的起始地址为0x2000.
a表示 二维数组名,那么 a==&a1 - 数组 int a3, 4, 请用3-4种方法表示a5, 6的地址?
a1+1*4+2 0行开始 1
*a+1*4+2 2
&a5, 6 1行开始 3
*(1)+2 4
a5+2 5
*(a+2)-2 2行开始 6
a6-2 7
*(*(&a+1))-6 3行开始 8
*(*(&a+1)-1)-2 末尾开始 9
10 int const *p问题
const int *p 定义指向const的指针(指针指向的内容不能被修改)
int const p 定义指向const的指针(指针指向的内容不能被修改)
int const p 定义const指针(由于指针本身的值不能改变所以必须得初始化)
const int* const p 指针本身和它指向的内容都是不能被改变的所以也得到初始化
int const* const p 指针本身和它指向的内容都是不能被改变的所以也得到初始化
11 数组和指针
12 字符数组
char *p = "Hello World!"; //它存储在只读存储区,不能修改,如果修改会出现段错误
13 二维数组
15 指针数组
16 指针函数
17 函数指针
18 函数指针数组
19 存储方式
data段:初始化的全局变量和静态变量
bss段 :未初始化的全局变量和静态变量, 自动清零
代码段:常量 代码
堆:用户分配,用户回收
栈:系统分配,局部变量
20 typedef
Date: a date, fixed, of a format string for format-time-string
Author: 野书
Created: 2016-07-24 日 15:50
C语言细节总结笔记的更多相关文章
- C语言细节——献给入门者(三)
C语言细节——献给入门者(三) >>主题:关于强制类型转换 先来瞎扯下强制类型转换,c语言有很多数据类型,long,short,int,float,double,bool,char等等.当 ...
- C语言细节——献给初学者(二)
C语言细节——献给初学者(二) 主题 循环运用+选择判断 C语言循环有for和while/do...while: 选择判断有:if...else和switch...case 在循环中需要注意搭配br ...
- C语言细节——献给入门者(一)
C语言细节——献给入门者(一) 主题 输入输出需要注意的细节 首先我们要知道大致有scanf(),printf(),getchar(),putchar(),gets(),puts()这几种输入方式. ...
- # C语言假期学习笔记——6
C语言假期学习笔记--6 数组 主要学习了一位数组和二维数组. 数组是一组具有相同类型的变量的集合.C语言程序通过元素的下标来访问数组中的元素.(下标从0开始) 一位数组 类型 数组名[元素个数] 二 ...
- R语言可视化学习笔记之添加p-value和显著性标记
R语言可视化学习笔记之添加p-value和显著性标记 http://www.jianshu.com/p/b7274afff14f?from=timeline 上篇文章中提了一下如何通过ggpubr ...
- 二级C语言真题笔记
二级C语言真题笔记 1. 知识重点:数据类型.循环.数组.函数.指针.结构体与共同体 2. 求程序的运行结果 #include <stdio.h> main() { short i ...
- [转载] C语言细节,写的非常棒!
这篇文章主要讨论C语言细节问题.在找一份工作的时候,语言细节占的比例非常小,之前看某个贴着讨论,估计语言细节在面试中,占了10%的比重都不到,那为什么还要研究C语言的细节呢,我觉得有三个原因促使我总结 ...
- C/C++编程笔记:C语言入门知识点(三),请收藏C语言最全笔记!
今天我们继续来学习C语言的入门知识点,第一课:C/C++编程笔记:C语言入门知识点(二),请收藏C语言最全笔记! 21. 输入 & 输出 当我们提到输入时,这意味着要向程序填充一些数据.输入可 ...
- C语言细节笔记2
C语言常见问题笔记: 1. 指针的声明 char * p1, p2; p1 是一个指向char类型的指针,而p2是一个char类型变量 这是由于 * 并不是基本类型的一部分,而是包含 ...
随机推荐
- NOIP2010 引水入城
4引水入城 题目描述 在一个遥远的国度,一侧是风景秀美的湖泊,另一侧则是漫无边际的沙漠.该国的行政区划十分特殊,刚好构成一个N 行M 列的矩形,如上图所示,其中每个格子都代表一座城市,每座城市都有一个 ...
- jquery-ui 之droppable详解
<div class="special">drop me</div> <div class="drag-box"> < ...
- (贪心5.2.6)URAL 1014 Product of Digits(利用数据有序化进行贪心选择)
/* * URAL_1014.cpp * * Created on: 2013年10月11日 * Author: Administrator */ #include <iostream> ...
- 爬取知乎百万信息之UrlTask
这个模块的作用是从nexturl队列获取用户的关注列表的url,获取关注列表.服务器返回的Json的数据 封装一个对象的序列化和反序列化的类 public class SerializeHelper ...
- iOS 沙盒目录结构介绍
iOS系统中,每个应用都有自己的沙盒,且应用只能访问其对应的沙盒目录下面的文件.当然,在用户授权的情况下,应用也可以访问其他目录下面的文件.比如,用户授权情况下,应用可以访问相册.通讯录.在开发中,经 ...
- 从Web借鉴UI设计
从Web借鉴UI设计 用户体验已经成为衡量应用软件质量的重要标准.在过去我们可能会惊叹于某个Web应用的华丽界面,现在,随着HTML5的强势登场,各类表现层技术及开发框架的发布,Web与窗体应用的界限 ...
- RecyclerView全面解析
写在前面 起深入浅出这名字的时候我是慎重又慎重的,生怕被人骂标题党,写的什么破玩意还敢说深入浅出.所以还是请大家不要抱着太高的期望,因为没有期望就没有失望,就像陈润说的,超预期嘛.全当看小说的心情来看 ...
- 自定义滚动条CSS样式
首先,给个默认css,清除掉以前的样式,给默认背景 .scrollbar { margin-left: 30px; float: left; height: 300px; width: 65px; b ...
- CF 319B Psychos in a Line 【单调队列】
维护一个单调下降的队列. 对于每一个人,只需要找到在他前面且离他最近的可以杀掉他的人即可. #include <cstdio> #include <vector> #inclu ...
- ios项目不能再用UDID了
今天更新项目时,出现 Apps are note permitted to access the UDID and must not use the uniqueIdentifier method o ...