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 ...
随机推荐
- Android应用瘦身
转:https://zhuanlan.zhihu.com/p/25465537 瘦身的目的 从目的导向来看,我们是不会无缘无故去做一件事情的,那我们对应用瘦身的目的是为了什么?答案是:提高下载转化率. ...
- JS性能优化的那点事
1:减少查找次数,把需要查找的内容先提取出来,全部添加计算完成后,再统一查找一次即可,如下面例子: <script> window.onload = function () { var s ...
- 判断一个点是否在多边形区域内--C算法
/*函数的输入:(1)当前点的坐标p(2)区域顶点数组pt[]:(3)顶点数nCount 输出: 在区域内返回TRUE,否则返回FALSE. Point类型是一个结构: struct Point { ...
- bazel安装
https://blog.csdn.net/cxq234843654/article/details/70861155 sudo apt-get install openjdk-8-jdk echo ...
- 解决Postgresql服务启动又关闭的问题
查看日志发现如下错误消息:%t LOG: could not receive data from client: An operation was attempted on something tha ...
- Quartz 配置文件属性
主要配置 Property Name Req'd Type Default Value org.quartz.scheduler.instanceName no string 'QuartzSched ...
- GreenPlum查看表和数据库大小
表大小 zwcdb=# select pg_size_pretty(pg_relation_size('gp_test')); pg_size_pretty ---------------- 1761 ...
- linux下通过phpize为php在不重新编译php情况下安装模块memcache
通过phpize为php在不重新编译php情况下安装模块memcache 1. 下载 wget http://pecl.php.net/get/memcache-2.2.4.tgz 解压 ...
- git提交时报错 permission denied
git push 时报错:permission denied xxx 目前很多解决办法是生成公钥和秘钥,这种方法安全可靠,比较适用于一台电脑对应一个git账户,但是多个账户在同一台电脑上提交使用git ...
- windows 时间同步至最新时间方法 | windows 时间同步服务器
国内 windows 系统的电脑有时候不能自动同步互联网当前时间,这就需要改一下 windows 的时间同步服务器 版权声明:本文为博主原创文章,未经博主允许不得转载. 原文地址:https://ww ...