C语言总结2

12).预处理指令

1. 什么叫做预处理代码.

以#开头的代码就是预处理代码  #warning #import

2. 手写1个C程序的步骤.(面试题)

1>编写代码

2>编译

1)执行.c中的预处理代码

2)检查语法

3>链接

4>执行

3. 预处理指令的分类.(面试题)  ******

1>文件包含指令  #include

2>宏定义  #define    (用来替换代码)

3>条件编译 #if  (满足一定的条件才编译)

4. 预处理指令的特点.

1>都是以#开头

2>后面没有分号

3>在编译的时候,检查语法之前进行

"注意

以#开头的代码就是预处理代码

13).sizeof运算符

sizeof运算符的作用?

作用:计算常量,变量在当前系统上内存中所占的字节数

sizeof (数据类型)

sizeof (变量)-----用的最多!

sizeof (常量)

注意,

char类型的变量在内存中占1个字节;

char类型的常量在内存中占4个字节;

综上所述,为了安全起见,sizeof后面最好加上括号!

14).按位异或

^ 异或运算

不同为1,相同为0

注意:

1 相同整数相^的结果是0;

2 一个整数^另一个整数2次结果不变 ; 3^2^2 = 3

3 整数相^跟顺序无关 3^2^3 = 2^3^3 = 2

15). 按位左移或者右移

1,按位左移运算. <<

参与按位左移运算的二进制数据. 向左移动指定的位数. 低位不够补0 高位溢出就丢弃

2,按位右移. >>

参与按位右移的二进制数据.向右移动指定的位数. 低位溢出丢弃,高位补符号位.

左移

1). 左移运算有可能会改变其正负性.

2). 将1个数左移n位,相当于将这个数乘以2的n次方.

右移

1). 右移运算不会改变正负性.

2). 将1个数按位右移n位.相当于这个数除以2的n次方.

16).深入变量的细节

一,变量在内存中的存储

1,在为变量分配字节空间的时候,是从高地址向低地址分配的

2,存储的时候,是低位存储在低字节,高位存储在高字节.

二,变量的地址

3,变量的地址是组成这个变量的低字节的地址.

4,使用&取地址可以取出变量的地址

17).数组地址问题

1.数组的地址 == 数组名 == 数组中的低字节的地址 == 数组中下标为0的元素的地址 == 数组中下标为0的元素的低字节的地址.

2,使用 %p 来打印数组名

18).二维数组与函数

1,当二维数组作为函数的参数的时]候.会丢失这个二维数组的行数和列数,解决方案是把行数和列数传递过来

2,当二维数组作为函数的参数的时候,要保证实参二维数组的列数必须要和形参二维数组的列数一致.

一个一劳永逸的方法是,写参数的时候,先写行数和列数,最后再写二维数组,然后二维数组的列数用参数指定.

void test2(int rows,int cols,int arr[][cols]);

19). 使用字符数组存储字符串注意的地方

1). 如果没有指定数组的长度.,那么数组的长度就为字符串的长度+1

2). 如果指定了长度,字符数组的长度就是指定的长度

3). 如果指定的字符数组的长度小于等于了字符串的长度,这个时候就会有问题了.

就会出现存储不下的情况.(不要指定长度)

4). 如果在声明1个字符数组的同时我们就初始化1个字符数据给这个数组,

那么这个时候是可以用中文.

20).指针

指针是一个数据类型,这数据类型可以用来定义变量,定义什么变量,指针变量,那这个指针变量是用来干什么的,专门用来保存地址的!

block是一个数据类型,这数据类型可以用来定义变量,定义的这个变量用来保存一段代码块!!

21). 指针作为函数的参数

1,指针作为函数的参数,在函数的内部去访问参数指针指向的变量的时候,其实访问的就是实参变量.

2, 指针作为函数的参数,可以实现什么效果?

函数的内部可以修改实参变量的值.

3. 什么时候需要将指针作为函数的参数?

当函数需要返回多个数据的时候就可以使用指针作为函数的参数.

如何实现的?

使用指针作为函数的参数. 让调用者将自己的变量的地址传递到函数的内部

函数的内部通过指针就可以修改实参变量的值.

4,返回数组最大值和最小值的思路

1>让调用者传递两个变量的地址给我.

2>让调用者自己先准备两个变量.然后将这两个变量的地址给我.

3>函数内部是不是可以通过指针 直接 修改 调用者的变量的值.

*pMax = max; //把最大值赋值给pMax指针指向的变量.

*pMin = min;//把最小值赋值给pMin指针指向的变量.

22).指针为什么要分类型

1, 指针变量的类型决定了 通过这个指针找到字节以后 连续操作多少个字节空间.

2, 指针的类型如果不和指向的变量的类型相同话. 那么通过指针就无法正确的操作指向的变量.

注意:

p1[n] = *(p1+n); 前提是p1是1个指针变量.

时间: 2024-11-10 07:59:03

C语言总结2的相关文章

使用R语言计算均值,方差等

R语言对于数值计算很方便,最近用到了计算方差,标准差的功能,特记录. 数据准备 height <- c(6.00, 5.92, 5.58, 5.92) 1 计算均值 mean(height) [1] 5.855 2 计算中位数 median(height) [1] 5.92 3 计算标准差 sd(height) [1] 0.1871719 4 计算方差 var(height) [1] 0.03503333 5 计算两个变量之间的相关系数 cor(height,log(height)) [1] 0

GCC在C语言中内嵌汇编 asm __volatile__ 【转】

转自:http://blog.csdn.net/pbymw8iwm/article/details/8227839 在内嵌汇编中,可以将C语言表达式指定为汇编指令的操作数,而且不用去管如何将C语言表达式的值读入哪个寄存器,以及如何将计算结果写回C 变量,你只要告诉程序中C语言表达式与汇编指令操作数之间的对应关系即可, GCC会自动插入代码完成必要的操作. 1.简单的内嵌汇编 例: __asm__ __volatile__("hlt"); "__asm__"表示后面的

C语言轻松高效学习方法之:多种方法实现

多种方法实现同一个功能,可以调动你学的所有知识去做,有助于你学的融会贯通. 下面举例来看: 实现功能:求一个整数的位数: 实现语言:C语言: 开发环境:Visual Studio 2017 如:3215是4位数 实现原理: 3215/10 = 321 ----1位数 321/10 = 32 ----又是1位数 32/10 = 3 ----又是1位数 3/10 = 0 ----又是1位数 共4位数,且终止计算条件是/10结果为0的时候: 根据这个原理,先写一个最笨的原始方法: 效果: 这种实现方案

轻松学习C语言编程的秘诀:总结+灵感

目前在准备一套C语言的学习教程,所以我这里就以C语言编程的学习来讲.注意,讲的是"轻松学习",那种不注重方法,拼命玩命的方式也有其效果,但不是我提倡的.我讲究的是在方式方法对头.适合你.减轻你学习负担和心里压力的前提下,才适当的抓紧时间. 因此,探索一种很好的学习方法就是我所研究的主要内容. 众所周知,学习C语言并非易事,要学好它更是难上加难.这和你期末考试背会几个题目的答案考上满分没多大关系,也就是说你考试满分也说明不了你学好.学精通了C语言.那么怎么才算学精通C语言?闭着眼睛对自己

详解go语言的array和slice 【二】

上一篇  详解go语言的array和slice [一]已经讲解过,array和slice的一些基本用法,使用array和slice时需要注意的地方,特别是slice需要注意的地方比较多.上一篇的最后讲解到创建新的slice时使用第三个索引来限制slice的容量,在操作新slice时,如果新slice的容量大于长度时,添加新元素依然后使源的相应元素改变.这一篇里我会讲解到如何避免这些问题,以及迭代.和做为方法参数方面的知识点. slice的长度和容量设置为同一个值 如果在创建新的slice时我们把

自动生成小学四则运算题目(C语言)

这个简易四则运算是我在百度上找的博主叫53余雅诗的一篇c语言代码,网址为http://www.cnblogs.com/ys1101/p/4368103.html,功能是可以选择加减乘除进行简易的四则运算,判断对错.我在VS2017上编译没有bug,因为功能只有整数运算,所以我在此基础上加了真分数的四则运算以及统计得分等,最后成功运行程序.我把我的源代码放在github上,地址为https://github.com/xiaofancheng/helloworld.

PAT 1009 说反话 C语言

给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出. 输入格式:测试输入包含一个测试用例,在一行内给出总长度不超过80的字符串.字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用1个空格分开,输入保证句子末尾没有多余的空格. 输出格式:每个测试用例的输出占一行,输出倒序后的句子. 输入样例: Hello World Here I Come 输出样例: Come I Here World Hello 1 #include<stdio.h> 2 #

PAT 1006 换个格式输出 C语言

让我们用字母B来表示"百".字母S表示"十",用"12...n"来表示个位数字n(<10),换个格式来输出任一个不超过3位的正整数.例如234应该被输出为BBSSS1234,因为它有2个"百".3个"十".以及个位的4. 输入格式:每个测试输入包含1个测试用例,给出正整数n(<1000). 输出格式:每个测试用例的输出占一行,用规定的格式输出n. 输入样例1: 234 输出样例1: BBSSS1

Go语言 IDE之Gogland配置使用

Gogland 是 JetBrains 公司推出的 Go 语言集成开发环境.Gogland 同样基于 IntelliJ 平台开发,支持 JetBrains 的插件体系.目前正式版尚未发布.官方:https://www.jetbrains.com/go/.关于使用,即将开始咯! 一.安装Golang 1) 首先到https://golang.org/dl/选择适合你系统的安装包,(墙内:http://golangtc.com/download). 2)下载完成安装到指定目录即可.我这里是(D:\G

R语言快速上手入门

R语言快速上手入门 课程学习网址:http://www.xuetuwuyou.com/course/196 课程出自学途无忧网:http://www.xuetuwuyou.com 课程简介 本教程深入浅出地讲解如何使用R语言玩转数据.课程中涵盖R语言编程的方方面面,内容涉及R对象的类型.R的记号体系和环境系统.自定义函数.if else语句.for循环.S3类R的包系统以及调试工具等.本课程还通过示例演示如何进行向量化编程,从而对代码进行提速并尽可能地发挥R的潜能.本课程适合立志成为数据科学家的