C语言其他知识总结
1、常指针与指针常量
诀窍:观察const修饰的是谁,那谁就不可更改。
const int *p;//const 修饰*p,所以*p不能更改。通过指针不可更改指向的值
int const *p;//同上
int *const p;//const 修饰p,所以p不能更改。指针指向不可更改
const int *const p;//const 修饰p,又修饰*p,所以p不能更改,*p不能更改。指针指向不可更改,通过指针不可更改指向的值
2、内存对齐
参考我之前写得笔记。
http://www.cnblogs.com/songliquan/p/4346931.html
3、参数传递方式
值传递,地址传递
值传递:不会改变原变量
值传递过程中会生成新的变量,所以函数内部的操作对传入参数没有影响
地址传递:会将在函数内部对变量的改变带出来。
地址传递是将变量的内存地址传入函数,函数内部的操作是直接作用在变量上。
void Exchg1(int x, int y)//传值
{
int tmp;
tmp = x;
x = y;
y = tmp;
} void Exchg1(int *x, int *y)//传地址
{
int tmp;
tmp = *x;
*x = *y;
*y = tmp;
}
如果在main函数中对函数进行调用,结果
int main()
{
int a = ;
int b = ;
Exchg1(a, b);
printf("a = %d, b = %d\n", a, b);//这里没有改变
int c =;
int d =;
Exchg1(a, b);
printf("c = %d, d = %d\n", c, d); //这里才是真正的交换
return ;
}
3、函数指针和指针函数
指针函数:普通函数,返回值比较特殊,是一个指针。
int * Sum(int a);
函数指针:指针变量,指向一个函数,只能指向一个形参列表一样的函数
int (*p)(int a,int b);
int Sum(int a,int b);
p = ∑//赋值
(*p)(10,20);//使用
4、字符串数字和常量字符串
char name1[] = "wangwu";//字符串数组,可以任意修改字符串
char *name2 = "zhangsan";//常量字符串,不能对其中的字符进行更改
C语言其他知识总结的更多相关文章
- OC语言基础知识
OC语言基础知识 一.面向对象 OC语言是面向对象的,c语言是面向过程的,面向对象和面向过程只是解决问题的两种思考方式,面向过程关注的是解决问题涉及的步骤,面向对象关注的是设计能够实现解决问题所需功能 ...
- 李洪强iOS开发之OC语言基础知识
OC语言基础知识 一.面向对象 OC语言是面向对象的,c语言是面向过程的,面向对象和面向过程只是解决问题的两种思考方式,面向过程关注的是解决问题涉及的步骤,面向对象关注的是设计能够实现解决问题所需功能 ...
- 01-C语言基本知识
目录: 一.C语言基本知识 二.C语言概述 回到顶部 一.C语言基本知识 1 语言背景 1946年,美国冯·诺依曼第一台计算机. 四大部分:中央处理器(控制器,运算器),存储器,输入设备,输出设备. ...
- Golang 入门系列(三)Go语言基础知识汇总
前面已经了 Go 环境的配置和初学Go时,容易遇到的坑,大家可以请查看前面的文章 https://www.cnblogs.com/zhangweizhong/category/1275863.html ...
- 用几分钟了解R语言入门知识
第一篇——用几分钟了解R语言入门知识 第二篇——用几分钟了解R语言入门知识(续) 关于数据分析学习笔记的计划(以及目录)
- ios开发学习笔记001-C语言基础知识
先来学习一下C语言基础知识,总结如下: 在xcode下编写代码. 1.编写代码 2.编译:cc –c 文件名.c 编译成功会生成一个 .o的目标文件 3.链接:把目标文件.o和系统自带的库合并在一起, ...
- C语言基础知识-数组和字符串
C语言基础知识-数组和字符串 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.数组概述 在程序设计中,为了方便处理数据把具有相同类型的若干变量按有序形式组织起来的方式我们称为数组 ...
- C语言基础知识-程序流程结构
C语言基础知识-程序流程结构 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.概述 C语言支持最基本的三种程序运行结构:顺序结构,选择结构,循环结构. 顺序结构:程序按顺序执行, ...
- C语言基础知识-运算符与表达式
C语言基础知识-运算符与表达式 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.常用运算符分类 1>.算术运算符 用于处理四则运算. 2>.赋值运算符 用于将表达式的 ...
- C语言基础知识-数据类型
C语言基础知识-数据类型 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.常量与变量 1>.关键字 C的关键字共有32个. >.数据类型关键字(12个) char,s ...
随机推荐
- Localroast使用总结
全手打原创,转载请标明出处: https://www.cnblogs.com/dreamsqin/p/10883248.html,多谢~=.= 什么是Localroast 一个根据 JSON 文件快速 ...
- hdu-1757 A Simple Math Problem---矩阵快速幂模板题
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1757 题目大意: 求递推式第k项模m If x < 10 f(x) = x.If x > ...
- 待解决问题:c++栈对象的析构、虚拟内存与内存管理的关系、内存管理的解决方案。
待解决问题:c++栈对象的析构.虚拟内存与内存管理的关系.内存管理的解决方案.
- phalcon中find 最常用
1 官网:http://docs.iphalcon.cn/reference/models.html#finding-records 2 具体操作实例 数据: mysql> select * f ...
- java设计模式——单例模式(三)
容器单例模式 之前学习Structs2,Spring框架时,经常会听到单例,多例.虽然这与单例模式不太一样,但是都很类似.在程序运行的时候,就加载所有的实例,然后用的时候直接取出 看下面代码: /** ...
- java基础编程——用两个栈来实现一个队列
题目描述 用两个栈来实现一个队列,完成队列的Push和Pop操作. 队列中的元素为int类型. 题目代码 /** * <分析>: * 入队:将元素进栈A * 出队:判断栈B是否为空, * ...
- C# DateTime的使用
获得当前系统时间: DateTime dt = DateTime.Now; Environment.TickCount可以得到“系统启动到现在”的毫秒值 DateTime now = DateTime ...
- 八、Linux 用户和用户组管理
Linux 用户和用户组管理 Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统. 用户的账号一方面可以帮助 ...
- MSBuild常用方法
打包后把nuget包复制到指定的目录 <Target Name="CopyPackage" AfterTargets="Pack"> <Cop ...
- 如何在 Linux 中配置基于密钥认证的 SSH
什么是基于 SSH 密钥的认证? 众所周知,Secure Shell,又称 SSH,是允许你通过无安全网络(例如 Internet)和远程系统之间安全访问/通信的加密网络协议.无论何时使用 SSH 在 ...