C-函数与内存剖析
功能,封装,调用
形参:定义函数时函数名后面中的参数,形式参数
实参:调用函数时传入的具体数据
return作用:1退出函数 2返回一个具体数值给调用者
返回值:
如果不明确声明返回值类型,默认就是int类型
如果有函数声明,但是没有函数定义
1,编译可以通过,因为编译器只会检测语法合不合理,并不会检测函数有没有定义
2,连接会报错
.h文件的作用:被别人拷贝,编译链接的时候不需要管.h 文件。
可以用来放函数的声明
int number 在内存中的存储格式: 一个int,4个字节(Byte),32位(bit),存储位置是从大到小

1, 按位与
如9&5,其实是
1001
101
------
0001
(与:11得1)1
因此9&5=1
2, 按位或 | (有1即为1)
3, 按位异或 ^(当对应的二进位不同时,结果为1,否则为0)
相同数值进行异或 9^9肯定为0
任何数和0进行异或肯定是0
4, 按位取反 ~
~9
5, 左移 << 二进制数字左移,右补0
9<<1, 9左移1位 = 9 * 2的一次方 = 18
9<<2, 9左移2位 = 9 * 2的二次方 = 36
9<<n, 9左移n位 = 9 * 2的n次方
6, 右移>> 左补符号位
(不借助第三方变量交换变量值)
a = a ^ b; b = a ^ b; a = a ^ b;
7, 利用按位与运算 判断奇偶性
int a
a&1 == 1 //奇数
a&0 == 0 //偶数
8, 利用按位输出二进制位
int temp = (sizeof(number)<<) - ; while (temp >= )
{
int value = number >> temp & ;
printf("%d", value);
temp--; if ((temp+)% ==
{
printf(" ");
}
} printf("\n");
char 类型
' ' 只能用在单字节
'男'为错误用法
C-函数与内存剖析的更多相关文章
- DLL函数中内存分配及释放的问题
DLL函数中内存分配及释放的问题 最近一直在写DLL,遇到了一些比较难缠的问题,不过目前基本都解决了.主要是一些内存分配引起问题,既有大家经常遇到的现象也有特殊的 情况,这里总结一下,做为资料. 错误 ...
- 深入理解类成员函数的调用规则(理解成员函数的内存为什么不会反映在sizeof运算符上、类的静态绑定与动态绑定、虚函数表)
本文转载自:http://blog.51cto.com/9291927/2148695 总结: 一.成员函数的内存为什么不会反映在sizeof运算符上? 成员函数可以被看作是类 ...
- [C语言] 数据结构-预备知识跨函数使用内存
跨函数使用内存 一个函数运行结束,使用malloc函数分配的内存,如果不调用free,就不会释放 在另一个函数中还可以继续使用 #include <stdio.h> #include &l ...
- 数据结构笔记2(c++)_跨函数使用内存的问题
预备知识 1.所有的指针变量只占4个子节 用第一个字节的地址表示整个变量的地址 //1.cpp 所有的指针变量只占4个子节 用第一个字节的地址表示整个变量的地址 # include <stdi ...
- malloc函数分配内存失败的常见原因
malloc()函数分配内存失败的常见原因: 1. 内存不足. 2. 在前面的程序中出现了内存的越界访问,导致malloc()分配函数所涉及的一些信息被破坏.下次再使用malloc()函数申请内存 ...
- 使用malloc和free函数进行内存动态分配
一.在学习c语言里面,内存分配这个话题非常有意思,因为我们平时在开发的时候,如果一不小心没注意内存释放的话,写的的程序很容易出错,所以今天就来回顾一下c语言里面的内存动态分配,下面我们先来看一个实例来 ...
- C++程序中不同变量、函数在内存中内存中的分布情况
一.一个C++编译的程序占用的内存分为以下几个部分 1.栈区:由编译器自动分配 存放函数的参数值,局部变量的值等,操作方式类似于数据结构中的栈. 2.堆区:一般由程序员分配释放,若程序员不释放,程序结 ...
- C/C++中经常使用的字符串处理函数和内存字符串函数
一. 字符处理函数 1. 字符处理函数:<ctype.h> int isdigit(int ch) ;//是否为数字,即ch是否是0-9中的字符 int ...
- 在内存充足时malloc函数分配内存失败的原因及解决
昨天在修改自己的代码的时候,碰到了malloc函数内存分配失败,上网翻了翻,一个很可能的原因是之前的代码出现了越界操作,导致malloc分配函数所涉及的一些信息被破坏.在这个思想的指导下,今天又是郁闷 ...
随机推荐
- Tomcat-在发布项目时两次重复加载的问题介绍与解决
前提: 如 1.存在某个应用:hello 2.该应用存放路径:D:\apache-tomcat-5.5.17\webapps\hello 3.Tomcat的server.xml部分配置信息如下: ...
- 控件 UI: VisualState, VisualStateManager, 控件的默认 UI
VisualState 和 VisualStateManager 控件的默认 Style, ControlTemplate, VisualState 示例1.演示“VisualState 和 Visu ...
- Linux命令:修改文件权限命令chmod、chgrp、chown详解
Linux系统中的每个文件和目录都有访问许可权限,用它来确定谁可以通过何种方式对文件和目录进行访问和操作. 文件或目录的访问权 限分为只读,只写和可执行三种.以文件为例,只读权限表示只允许读其内容,而 ...
- fastq to tasta using linux shell script
#!/bin/bash usage() { echo " "; echo "############################################### ...
- ORA-29538、ORA-29532、ORA-29913问题解决
问题一:ERROR at line 1: ORA-29538: Java not installed解决方法1.检查有没有安装JAVA组件select * from v$option t where ...
- 【BZOJ-4199】品酒大会 后缀数组 + 并查集合并集合
4199: [Noi2015]品酒大会 Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 436 Solved: 243[Submit][Status] ...
- angularjs 手动加载
利用ng-app可以完成自动加载,如果不利用ng-app.那么使用bootstrarp实现手动加载模块 <html> <head> <script src="a ...
- CCNET+ProGet+Windows Batch搭建全自动的内部包打包和推送及管理平台
所要用的工具: 1.CCNET(用于检测SVN有改动提交时自动构建,并运行nuget的自动打包和推送批处理) 2.ProGet(目前见到最好用的nuget内部包管理平台) 3.Windows Batc ...
- poj1811 数论
题意:判断一个数是否是质数+分解质因数 sol:模板题 分解质因数用xudyh模板,注意factor返回的是无序的,factorG返回是从小到大的顺序(包括了1) 判断质数用kuangbin随机化模板 ...
- ecshop /flow.php SQL Injection Vul
catalog . 漏洞描述 . 漏洞触发条件 . 漏洞影响范围 . 漏洞代码分析 . 防御方法 . 攻防思考 1. 漏洞描述 ECSHOP的配送地址页面网页没有验证地区参数的有效性,存在sql注入漏 ...