c语言找出不是两个数组共有的元素_C 语言常见概念

b75bfb37afe34f72fb7b807aa9b66e9d.png

  • 总体

  • 概念常见

  • 第一章

  • 第三章

  • 第三章

  • 第四章

  • 第五章

  • 第六章

  • 第七章


-> 和 . 区别: 

一个是指针调用其变量 

一个是对象调用其变量


总体

1.程序结构的三种:顺序结构、循环结构、选择结构 。

2.读程序都要从 main() 入口,然后从最上面顺序往下读 。

3.计算机的数据在电脑中的保存是以二进制的形式,数据存放的位置是他的地址 。

4.bit 是位,指的0或者1。byte 是指的字节,一个字节八位

5.二进制转为10进制的方法

概念常见

1.编译预处理不是C语言的一部分,不再运行时间呢。C语言编译的程序称为源程序,它以ASCII数值存放在文本文件中。

2.每个C语言程序中 main 函数是有且只有一个

3.在函数中不可以再定义函数

4.算法是一定有输出的,它可以没有输入

5.break 可用于循环结构和 switch 语句

6.逗号运算符的级别最低

第一章

1、合法的用户标识符

  • 合法的要求是由字母、数字、下划线组成。有其他的元素就错的。
  • 第一个必须是字母或者是下划线。第一个不能是数字
  • 关键字不能作为用户标识符。main define scanf printf 都不是关键字,迷惑的地方:If是可以作为用户标识符,因为If中的第一个字母是大写的,所以不是关键字

2、实型数据的合法形式:2.333e-1 就是合法的,且数据是

  • e 前 e 后必有数,e 后必为整数

3、字符串数据的合法形式

  • '1' 是字符,占一个字节, “1” 是字符串,占两个字节(含有'\0')
  • '0' 的ASCII数值表示为48,'a' 的ASCII数值表示为97, 'A' 的ASCII数值表示为65

4、整型一般是2个字节,字符型是1个字节,双精度一般是4个字节

  • 在 16 位编译系统上或者是32位系统,直接按照这样做就好

5、转义字符的考察

  • 在程序中 int a = 0x6d, 是把一个十六进制的数给到变量 a。注意这里的0x 必须存在
  • 在程序中 int a = 06d,是一个八进制的形式
  • 在转义符中,'\x6d' 才是合法的,0不能写,并且x是小写
  • '\141' 是合法的,0不能写
  • '\108' 是非法的,不能出现8

6、算数运算符的优先级

  • 同级别从左到右

7、强制类型转换

  • 一定是 (int) a,而不是 int (a),注意括号
  • 注意 (int) (a+b) 和 (int) a+b 的区别。前是把 a+b 转型,后是把 a 转型再加 b

8、表达式的考察

  • 注意逗号表达式:优先级别最低,表达式的数值逗号最右边的那个表达式的数值
  • (2, 3, 4) 的表达式的数值就是4

9、位运算的考察

  • 先把十进制转为二进制,然后做了位运算,再转为十进制

10、三种丢小数的情况

  • int a = 1.6
  • (Int) a;

第三章

1、printf 函数的格式考察

  • %d整形;%c字符;%f单精度;
  • %ld long int;%lf double

2、scanf 函数的格式

  • 注意该函数的第二部分是 &a 这样的地址

3、putchar,getchar

  • char a = getchar(); 是没有参数的,从键盘直接输入你的一个字符变量 a
  • putchar('y') 把字符 y 输出到屏幕中

4、实现两个变量的互换

5、实现保留三位小数,第四位 四舍五入

第三章

强调:C语言中,用非0表示逻辑真,用 0 表示逻辑假

1、关系表达式:

  • 表达式的数值只能为 1(真),或0(假)

  • 当关系的表达式为真的时候得到1,如果 9>8这个是真的,所以数值是 1

2、逻辑表达式

  • 只能为1(真),或0(假)
  • 共有 && 、|| 、! 三种逻辑运算符
  • ! > && > || 优先级的级别
  • 注意短路现象「 &&前面是0时,&&符号后面的不计算.||前面不是0时,||号后面的不计算 」
  • 要表示 x 是比 0 大,比 10 小的方法。0(0

3、if 语句、switch

第四章

1、三种循环结构

  • for
  • while
  • do-while

2、break 和 continue 的差别

第五章

函数:是具有一定功能的一个程序块

  • 注意点:实参和形参之间传递数值,和传地址的差别
    • 传数值的话,形参的变化不会改变形参的变化
    • 传地址的话,形参的变化就会有可能改变实参的变化

第六章

指针变量是用来存放地址的

1、int * p 中 *p和p的区别:

  • *p可以当做变量来用,* 的作用是去后面 p 中的地址
  • p 是可以当做地址来使用的

2、* p++ 和 (*p)++ 之间的差别

  • * p++ 是地址的改变
  • (* p)++ 是数值的改变

3、三名

  • 数组名:表示第一个元素的地址,数组名不可以自加,他是地址常量名「 *(a+1)可以, *(a++)不可以」
  • 函数名:表示函数的入口地址
  • 字符串常量名:表示第一个字符的地址

第七章

1、一维数组的重要概念,对 a[10] 进行讨论

  • a 表示数组名,是第一个元素的地址,也就是 a[10] 的地址
  • a 是地址常量,所以只要出现a++,或者 a=a+2 的赋值都是错误的
  • a 是一维数组名,所以他是列指针,也就是说 a+1 是跳一列

2、对 a[3][3] 的讨论

  • a 表示数组名,是第一个元素的地址,也就是 a[10] 的地址
  • a 是地址常量,所以只要出现a++,或者 a=a+2 的赋值都是错误的
  • a 是一维数组名,所以他是列指针,也就是说 a+1 是跳一行
  • a[0], a[1], a[2] 也都是地址常量,不可以对它进行赋值操作,同时他们都是列指针,a[0]+1, a[1]+1, a[2]+1都是跳一列
  • 注意 a 和 a[0], a[1], a[2] 都是不同的,他们的基类型是不同的。前者是一行元素,后三者是一列元素

3、二维数组做题技巧

  • 如果有 a[3][3] = {1, 2, 3, 4, 5, 6, 7, 8, 9}

  • 步骤一:把他们写成

    列一 列二 列三

a[0] 1 2 3 -> 第一行

a[1] 4 5 6 -> 第二行

a[2] 7 8 9 -> 第三行

  • 步骤二

*(a[0]+1) 我们就知道是第一行的第一个元素往后跳 1 列,那么,这里就是 a[0][1] 的元素,所以就是 1

*(a[1]+2) 我们就知道是第一行的第二个元素往后跳 2 列,那么,这里就是 a[1][2] 的元素,所以就是 6

4、二维数组的定义形式

  • 一定需要指定列 例如:a[][N] ,因为是按照一维数组的形式存储,指定列数量,就可以严格按照列进行切分

5、二维数组中的行指针

  • int a[1][2],其中 a 就是一个行指针,a+1跳一行,搭配 (*)p[2] 指针
  • a[0]、a[1] 是一个列指针,a[0]+1 跳一个数组元素。搭配 *p[2] 指针进行使用
  • a[2] -> *(a+2)
  • a[2][3] -> *(a+2)[3] -> *(*(a+2) + 3)

作者:Johngo

配图:Pexels


欢迎大家留言,点个 在 ,也可以分享到朋友圈

e56206d5f9c28c299d74ef138da7bc22.png

互联网广告收入占到互联网收入的80%以上 计算广告,一起研究 流量变现 ,欢迎大家的加入
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值