.c是C语言源文件,在编写代码的时候创建

.o是目标文件,在编译成功的时候产生  .obj

.out是可执行文件,在链接成功的时候产生


工具:clang编译器(Xcode3 gcc Xcode4 LLVM (clang))

指令:cc -c 文件名.c  【Tab键】

编译 成功,会生成一个.o目标文件

链接:其实就是把我们的.o目标文件跟系统自带的函数库合并在一起,生成一个可执行文件见

Touch 02-我的第二个C语言程序.c【创建文件】


1> %d\%i   整数(int)

2> %f          小数(float double)

3> %c         字符(char)

4>  %p            输出地址

5>   &              地址运算符


Sizeof 作用

用来计算一个变量或者一个常量,一种数据类型所占的内存字节数

基本形式

Sizeof(常量\变量)

Sizeof 变量\常量

Sizeof (数据类型)

不能是sizeof数据类型

列:

Double a;

Int b=sizeof(a);

Printf("%d\n:",b);

输出b:8  表示8个字节


scanf接受输入

这也是在stdio.h中声明的一个函数,因此使用前必须加入#include <stdio.h>。

调用scanf函数时,需要传入变量的地址作为参数,scanf函数会等待标准输入设备

(比如键盘)输入数据,并且将输入的数据赋值给地址对应的变量

  • 注意:数值之间的分隔符是任意的,不一定要用中划线-,可以是逗号、空格、星号*、井号#等等,甚至是英文字母

// 逗号,

scanf("%d,%d,%d", &a, &b, &c); // 输入格式:10,14,20

// 井号#

scanf("%d#%d#%d", &a, &b, &c); // 输入格式:10#14#20

// 字母x

scanf("%dx%dx%d", &a, &b, &c); // 输入格式:10 x14x20


运算符的优先级(从高到低)

  • 关系运算符中==、!=的优先级相等,
  • <、<=、>、>=的优先级相等,
  • 且前者的优先级低于后者:2==3>1
  • 如果在程序中,要改变运算顺序,可以使用()。

优先级

描述

运算符

1

括号

()、[]

2

正负号

+、-

3

自增自减,非

++、--、!

4

乘除,取余

*、/、%

5

加减

+、-

6

移位运算

<<、>>、>>>

7

大小关系

>、>=、<、<=

8

相等关系

==、!=

9

按位与

&

10

按位异或

^

11

按位或

|

12

逻辑与

&&

13

逻辑或

||

14

条件运算

?:

15

赋值运算

=、+=、-=、*=、/=、%=

16

位赋值运算

&=、|=、<<=、>>=、>>>=



内存-进制

 // 输出整数的二进制形式
void putBinary(int n)
{
int bits = sizeof(n) * ;
while (bits-->) {
printf("%d", n>>bits&);
if (bits%==) printf(" ");
}
printf("\n");
}

  1. signed和unsigned

1> 首先要明确的:signed int等价于signed,unsigned int等价于unsigned;

2> signed和unsigned的区别就是它们的最高位是否要当做符号位,并不会像short和long那样改变数据的长度,即所占的字节数。

  • signed:表示有符号,也就是说最高位要当做符号位,所以包括正数、负数和0。其实int的最高位本来就是符号位,已经包括了(正负数和0)了,因此signed和int是一样的,signed等价于signed int,也等价于int。signed的取值范围是-231 ~ 231 - 1
  • unsigned:表示无符号,也就是说最高位并不当做符号位,所 以不包括负数。在64bit编译器环境下面,int占用4个字节(32bit),因此unsigned的取值范围是:0000 0000 0000 0000 0000 0000      0000 0000 ~ 1111 1111 1111 1111 1111 1111 1111 1111,也就是0 ~ 232 - 1

C语言笔记的更多相关文章

  1. R语言笔记

    R语言笔记 学习R语言对我来说有好几个地方需要注意的,我觉得这样的经验也适用于学习其他的新的语言. 语言的目标 我理解语言的目标就是这个语言是用来做什么的,为什么样的任务服务的,也就是设计这个语言的动 ...

  2. R语言笔记4--可视化

    接R语言笔记3--实例1 R语言中的可视化函数分为两大类,探索性可视化(陌生数据集,不了解,需要探索里面的信息:偏重于快速,方便的工具)和解释性可视化(完全了解数据集,里面的故事需要讲解别人:偏重全面 ...

  3. Scala语言笔记 - 第一篇

    目录 Scala语言笔记 - 第一篇 1 基本类型和循环的使用 2 String相关 3 模式匹配相关 4 class相关 5 函数调用相关 Scala语言笔记 - 第一篇 ​ 最近研究了下scala ...

  4. Go 语言笔记

    Go 语言笔记 基本概念 综述 Go 语言将静态语言的安全性和高效性与动态语言的易开发性进行有机结合,达到完美平衡. 设计者通过 goroutine 这种轻量级线程的概念来实现这个目标,然后通过 ch ...

  5. 014-预处理指令-C语言笔记

    014-预处理指令-C语言笔记 学习目标 1.[掌握]枚举 2.[掌握]typedef关键字 3.[理解]预处理指令 4.[掌握]#define宏定义 5.[掌握]条件编译 6.[掌握]static与 ...

  6. 013-结构体-C语言笔记

    013-结构体-C语言笔记 学习目录 1.[掌握]返回指针的函数 2.[掌握]指向函数的指针 3.[掌握]结构体的声明 4.[掌握]结构体与数组 5.[掌握]结构体与指针 6.[掌握]结构体的嵌套 7 ...

  7. 011-指针(上)-C语言笔记

    011-指针(上)-C语言笔记 学习目标 1.[掌握]字符串常用函数 2.[掌握]指针变量的声明 3.[掌握]指针变量的初始化 4.[掌握]函数与指针 5.[掌握]指针的数据类型 6.[掌握]多级指针 ...

  8. 010-字符串-C语言笔记

    010-字符串-C语言笔记 学习目标 1.[掌握]二维数组的声明和初始化 2.[掌握]遍历二维数组 3.[掌握]二维数组在内存中的存储 4.[掌握]二维数组与函数 5.[掌握]字符串 一.二维数组的声 ...

  9. 009-数组-C语言笔记

    009-数组-C语言笔记 学习目标 1.[掌握]数组的声明 2.[掌握]数组元素的赋值和调用 3.[掌握]数组的初始化 4.[掌握]数组的遍历 5.[掌握]数组在内存中的存储 6.[掌握]数组长度计算 ...

  10. 008-进制-C语言笔记

    008-进制-C语言笔记 学习目标 1.[掌握]include预处理指令 2.[掌握]多文件开发 3.[了解]认识进制 4.[掌握]进制之间的互相转换 5.[掌握]原码,反码,补码 6.[掌握]位运算 ...

随机推荐

  1. 用redux构建购物车

    很久没更新博客了,最近要用到react,再来跟大家分享一个redux案例吧. [ {"id": 1, "title": "iPad 4 Mini&qu ...

  2. dp - 2016腾讯笔试 A

    2016腾讯笔试 A Problem's Link -------------------------------------------------------------------------- ...

  3. c# 打开指定的网址

    System.Diagnostics.Process.Start(url);

  4. ASP.NET MVC文章附加有源码下载的文章

    很多一段时间以来,Insus.NET有分享很多有关ASP.NET MVC的文章,每隔一段时间,会把源码以及数据库分享供大家下载. 你可以按时间排序,文章越新,源码以及数据数据也就越新. 你可以从下面的 ...

  5. iOS阶段学习第四天笔记(循环)

    iOS学习(C语言)知识点整理笔记 一.分支结构 1.分支结构分为单分支 即:if( ){ } ;多分支 即:if( ){ }else{ }  两种 2.单分支 if表达式成立则执行{ }里的语句:双 ...

  6. C#-INotifyPropertyChanged(解决数据绑定的界面刷新问题)

    最近做项目用到DataGridView,用它绑定数据源后,如果数据源中的数据修改无法及时刷新到控件上,必须切换单元格的焦点才能导致刷新显示新数值,通过查官方文档,用INotifyPropertyCha ...

  7. mysql学习笔记 第五天

    使用分区数据表: 分区数据表和merge数据表具有相似的作用,但是分区数据表确确实实是一个数据表 ,不像merge是列出数据表的逻辑关系,并且分区数据表可以包括像myisam以外的 的数据表.创建分区 ...

  8. MongoVUE(MongoDB图像管理工具)

    介绍一款很不错的开源的MongoDB图形化管理工具:MongoVUE 下载地址:MongoVUE 1.6.9 破解版

  9. Mybatis批量添加对象List

    1.对应的xml文件: <!--批量添加--><insert id="insertStandardItemInfo" parameterType="ha ...

  10. 自学H5第一天笔记

    1.web前端开发工程师 1.web前端开发工程师是做什么的 要与网站打交道 2.成为一名web前端开发工程师需要具备的条件 1.兴趣 2.敲代码 3.web前端开发需要学习什么 1.软件 浏览器:有 ...