C语言基础知识
#import <Foundation/Foundation.h>
int main( ) {
#pragma mark --------------进制-------------
/*
1.进位机制,逢几进一,就是几进制
2.进制作用:利用有限的数字表示所有的数值。
3.进制的规则:
1)二进制 0 1
2)八进制 0 1 2 3 4 5 6 7
3)十进制 0 1 2 3 4 5 6 7 8 9
4)十六进制 0 1 2 3 4 5 6 7 8 9 a b c d e f (a~f 10-15)
4.进制的转换
1)十进制转N进制
连除倒取余,
2)N进制转十进制
按权求和(按位求和,多项式展开)
3)概念:
1.基数:N进制的基数为N,例如十进制的基数为10
2.位:对数值每一位的描述,从右到左是从最低位到最高位,最低位使用0 表示。向高位方向依次增加。例如:123 3的位为0,2的位为1,1的位为2.
3.权:基数的另外一种称呼,相同
练习:将十进制数字57 转化成二进制,并将结果转回为十进制,以此验证
4)区分进制
1.十进制:不加修饰
2.八进制:数值前加0,例如:0111
3.十六进制:数值前加0x 例如:0x111
4.二进制:数值前加0b 例如:0b111
5)进制常识
1.十进制:给开发人员使用,二进制:计算机能识别的语言,即0 1 编码
2.一个十六进制位=4个二进制位 十六进制的存在,更多的作用是为了方便的表示二进制
*/
#pragma mark ----------数据类型--------------
/*
数据类型;
在编写计算机程序时,我们会将大量的数据交给计算机处理,那么在C语言当中,如何存储。
1.数据类型的分类
(1)基本数据类型:整形,浮点型,字符型
(2)构造类型:数组,枚举
(3)指针类型
(4)空类型 void
2.基本的数据类型介绍
(1)整型 存储整数
1)short 短整形
2)int 整形
3)long 长整形
4)long long 长长整形
(2)浮点型 存储小数
1)float 单精度浮点型
2)double 双精度浮点型
(3)字符型 存储字符
1)char 字符型
3.数据的存储单位
1.存储单位,字节bits,最常用的存储单位,也是最小的
2.1字节=8位(二进制)=2位(十六进制)
4.不同数据类型存储空间不同,存储空间决定了数据类型能够存储数据的范围。
1.数据类型的存储空间与操作系统有关,并不是统一的,但是有一个原则;short<=int <=long<=long long
2.char 1 short 2 int 4 long4/8 float 4 double 8
3.sizeof 运算符,计算每个数据类型占用存储空间的大小
4.整型区分有符号和无符号的,无符号的标示符 unsigned。
5.区分正数和负数,整数对应的二进制数,最高位1的是正数,最高位为0的是负数
// printf("%lu\n",sizeof(char));
// printf("%lu\n",sizeof(short));
// printf("%lu\n",sizeof(int));
// printf("%lu\n",sizeof(long));
// printf("%lu\n",sizeof(float));
// printf("%lu\n",sizeof(double));
*/
#pragma mark-----------常量,变量-------------
/*
常量:
1.程序运行期间不能被改变的量
2.常量分类:
(1)整型常量:10
(2)浮点型常量: 1.5
(3)字符常量:1.普通字符'n'2.转义字符(属于一个操作字符,无法打印显示,例如:\n)
(4) 字符串常量:"蓝鸥" "iOS"
3.变量
(1)程序运行期间可以改变的量
(2)变量代表一个存储区域,用于存储数据,相当于一个容器存储的内容就是变量的值
(3)变量在使用之前必须先定义。三部分:类型,变量名,初始值
(4)变量名要求
1.只能由数字,下划线,字母组成,并且不能以数字开头
2.不能使用系统保留字 比如:int float
3.不能重复使用定义过的变量名
4.见名知意
5.驼峰命名法 teacherName studentName
int age =10;
float age2=10.5;
//练习:定义五个变量,且每个变量类型不同。
//同行可以定义相同变量
int a = 0,g=23;
//修改变量
printf("%d\n",a);
a=15;
printf("%d\n",a);
//声明变量--它不设置初始值。一般情况下都要求定义变量,特殊情况的时候再做说明
int age3;
*/
#pragma mark -------------运算符-----------------
/*
1.运算符
1.运算符包括很多种:单目运算符,双目运算符,三目运算符,单,双,三分别表示参与运算的变量和常量的数量
2.赋值运算符,算数运算符,复合运算符
3.学会使用( )用来标记运算符,使其运算优先级提前,避免错误。代码的可读性强
2. 赋值运算符
左值:等号左边的值 只能是变量
右值:等号右面的值 可以是变量,常量,表达式
int age = 10;
//练习:交换两个变量的值,提示:两个水杯交换水的事后,需要使用第三个水杯
int a=2,b=3,c=0;//交换a,b的值,c作为中间变量
c=a;
a=b;
b=c;
printf("%d\n%d\n" ,a ,b );
3.算数运算符 双目运算符 + - / *
//+
int b1 = 10;
int b2 = 10 + b1;
int b3 = b1 + b2;
//- 与+相同
// *
int d1 = 10;
int d2 = d1 * 10;
int d3 = d2 * d1;
// /
1.除数不能为0,int d4 = 10 / 0;是错误的
2.除号两边都是整数,结果也是整数,省略小数部分
int f1 = 3 / 2;
printf("%d\n",f1);则f1的值为1;
3.除号两边都是浮点型,结果是浮点数。除号两边有一个是浮点型,结果也是浮点型
float f2 = 4.2 / 2.0;,则,f2的值为2.100000,
f2 = 4.2 / 2 ,则f2的值仍为2.100000,系统默认保留小数点后六位
4.取余运算符%
取余运算符的两边必须是整数
5.自增,自减运算符++,--
1.只能给变量使用
2.在变量前先自增自减,在变量后运算完再自增自减
// 1. ++ 在变量后面 相当于 i = i + 1;
int i = 10;
// printf("%d\n",i);
i++; //语句执行后,变量i 为11
// printf("%d\n",i);
//先参与运算,再自增
int j = 5;
int k = 50 + j++; //相当于 k = 50 + 5; j = j + 1;
printf("%d\n",k);
printf("%d\n",j);
// 2. ++在变量前面
//先自增,再参与运算
int x = 20;
++x;
// int k = 50 + ++j; 相当于 j = j + 1; k = 50 + 6;
// printf("%d\n",x);
6.复合运算符 += -= /= *=
a += b 相当于 a = a + b;依次类推
*/
#pragma mark -----------表达式和语句---------
/*
1.表达式组成:常量,变量,运算符。表达式是有返回值的。
2.语句:程序运行的最小单位,以;结束
*/
/*
转义字符
\n 换行
\t 制表符 tab
%% 一个百分号
\" 一个双引号
占位符
int %d
long %ld
short %hd
char %c
float %f
double %lf
*/
#pragma mark ------------输出函数------------
/*
1.将需要输出的内容转换成字符串,输出显示在控制台
2.输出内容:普通的字符串,将变量的值转换成字符串
3.函数格式: printf("格式字符串",表达式1,表达式2,.........)
int age =26;
printf("大家好,我今年%d岁\n",age);
*/
}