C语言 概念整理 第一章 我梦老师倾情奉献
2015-10-24 20:31
288 查看
一、
1. C语言打印图形 最简单的printf
#include <stdio.h>
int main() {
printf(“hello world");
return 0;
2.数据类型!
为什么需要数据类型?
方便我们存储数据,因为可以按照类型来确定内存占用多少空间
整数(通俗的说就是需要数据是整数的时候用下面这三个 不过编程都只用int!!!!!):
short(最小) int(中等) long(最大)
实型:(小数)
float(小一点) double(大一点)
字符型:(保存单个字母)
char
'a' '%'
在程序里面,要保存单个字母应该用单引号包起来
也就说 编程的时候 需要数据是整数就用int 是小数就用 float(小一点) double(大一点)
是字母就用char。
3. 写代码要注意的地方:
1.不要忘记导入(其实就是开头打的这一行)头文件 #include <stdio.h>
2.main函数只能有一个,而且必须要有
3.语句后面千万要记得加分号,必须是英文(;)什么叫语句?简单来说就是写在main函数里面的代码就叫语句
4.main函数后面的大括号一定要成对出现,而且是英文的大括号
5.return 0可以省略的。
6.return 0一定要放在最后,否则,在return 0后面的代码不会被执行
\n是换行的
4.
常量:就是一直不会改变的量
程序里面怎么表示常量呢?
1.)字面量表示法
直接写值(数据)
1; 2; 10; 10.3; 'a';
int short long float double
疑问来了:
凭什么1要算做int而不算做long呢?
10.3凭什么要算作double不算做float?
就想表示一个long类型的常量和一个float类型的常量,怎么办呢??
10l; //加一个l 这样就代表了long类型的常量
10.3f;//加一个f 代表float类型的常量
提问:可以描述为short类型的吗?
不可以的!
如果要写字符型的常量
要想表示字符型常量,必须加''括起来,而且是英文的单引号
'a','b','c','\n'是一个字符,换行字符
'ab';
字符只能表示单个字符
2.)名字表示法:只读变量
语法:
const 类型(数据类型) 名字 = 值;
例:
const int num1 = 10;
const short num2 = 3;
const char ch1 = 'a';
5.printf的另外一种用法:
在你需要的位置,加一个%d,那么在后面,就可以填写一些值,它会自动的帮你填充过去
意思就好比:%d是挖了一个坑,然后后面的值,把它填充
注意:前面挖了几个坑,就一定要填几个坑
格式化控制符
%d 一定要填int型
%ld 填入long类型
%f 填入float类型
%lf 填入double类型
%c 填入的char类型
总结:
printf("要输出的内容"); //直接输出内容
格式化输出内容:
printf("格式化字符串",值列表);
例:
printf("字符1=%c\n",'a');
注意:格式化字符串后面要接一个英文的逗号"," 值与值之间用,隔开
6.变量:就是可以改变的量
语法:
类型 变量名 = 值;
例:
int salary = 2500;
char ch = 'a';
第二种写法:
类型 变量名;
变量名 = 值;
7.变量的命名规范:
1.起名要有意义
2.只能以下划线、字母、美元符号($)开头,然后后面可以接任意的下划线和字母和美元符号还有数字(注意:mac环境下,是可以使用中文的,但是不推荐使用)
3.不能以关键字作为名字
4.使用驼峰命名法:
第一个单词的首字母小写,后面的每个单词的首字母都大写
8. scanf函数的用法!!!
printf是输出
那么能不能输入呢?
就要用scanf
用来接收用户输入的数据
语法:
scanf("格式化控制符",地址列表);
要用取地址符:& (shift + 7)
int num = 10;
int num;//也有值,只不过是垃圾值
注意:一定要加取地址符&
也可以接收小数:
%f:float类型
scanf函数:
语法:scanf("格式化控制符",地址列表);
&:取地址符
格式化控制符前面要求输入什么类型的数据,那么地址列表那,就必须只能放相应类型变量地址
scanf函数的特点:
它是一个阻塞式的函数
使用scanf函数同时接收多个输入
其实就是在格式化控制符里面,多写几个格式化控制符,地址列表要按照顺序给
输入的时候可以输入N次(N等于格式化控制符的个数),或者以空格隔开
如果不想用空格在一行内输入,那么你在scanf函数里面可以指定符号
输入的时候必须按照这个符号来输入,否则会异常(后面的变量接不到值)
scanf里面最好不要接其他的文字。如果实在忍不住手贱要加东西,那么也一定要按照你在scanf里面写的格式来输入
用scanf的时候,最好不要先接收一个任意的数值类型(整型、实型),再接收一个char类型.
如果非要在后面接一个char类型的话,那么在scanf的格式化控制符之前要加一个空格
如果scanf要接收的是数字,那么不管你输入多少个空格,或者回车,都不会停止让你输入,直到你输入一个数字才会停止
如果接收的是int类型,你输入一个小数,那么会截取小数的整数部分
如果接收的是数字,你输入的是字符,那么会结束输入,但是不会把值给你存起来
scanf的运行原理:
scanf接收用户的输入,但是用户的输入并不是直接给了变量,而是存在一个叫缓冲区的地方
1.接收输入的时候,会先去缓冲区里面找,看缓冲区里面有没有合适的值,如果有,那么就直接不让你输入,直接把缓冲区里面的值给到你的变量,如果没有呢?会让用户继续输入,直到合适,才停止
9.算术运算符:
+:加,功能:就是把左右两个操作数的值相加得到和
-:减,功能:就是把左右两个操作数的值相减得到差
*:乘,功能:就是把左右两个操作数的值相乘得到积
/:除,功能:就是把左右两个操作数的值相除得到商
%:取余,功能:就是把左右两个操作数的值进行除法运算,得到余数。除不尽的数
1+2;
3+10;
10/2;
3*2;
10%3;
像这样的式子就叫算数表达式
算术表达式:就是用算数运算符组成的表达式就叫算数表达式
我们用表达式都是为了得到一个结果。
所以如果直接写算数表达式,毫无意义
如果要让它有意义起来怎么办?
1.直接在printf里面进行输出
2.保存到变量里面
常量或者变量都可以参与运算。
需要注意的地方:
1.加减乘跟数学一样
2.除不一样。当/两边的数都是整数的时候,那么得到结果也一定是整数
当/两边的数有一个是浮点数,那么得到的结果也一定是浮点数。运算结果是double还是float根据浮点数类型来确定
3.取余:就是得到余数
取余结果的正负性 只取决于左边的那个操作数,左边那个是正数,那么结果也一定是正数,左边那个是负数,那么结果也一定是负数。跟第二个数的符号木有半毛钱关系
一个算数运算式里面,谁先运算呢?
跟数学一样:先算乘除再算加减,有括号的先算括号里面的
如果同级则从左往右依次运算
程序里面符号有优先级之分:
数学里面:0可以做除数吗?
不可以!程序里面也不可以!
1.如果0作为除数的表达式两边都是常量,那么运行不会报错,只不过得到的结果是垃圾值
2.如果0作为除数,两边任何一方是变量,那么运行时会报错
3.浮点数不能做取余操作
10 类型装换!!!
在基本数据里面,所有的值都可以进行转换
int char long short float double
可以把float或者double转换成int,那么会截取小数的整数部分
像 int num = 10.3;这样的转换,就叫隐式转换,是由系统帮你完成的转换
显示转换:
那么就是程序员告诉编译器该转换成什么类型
补充:在同一个作用域里面变量不能同名,同名会报错
字符其实本质上就是正整数
=:
在数学中叫=号,在程序里面叫赋值号
数学里面代表 左边和右边是相等的关系
程序里面是代表把右边的值赋值给左边
赋值表达式也有结果,结果就是 = 右边表达式的结果
11.自增自减
年龄每年都在增长一岁,那么用程序如何描述?
++:
在原来的值的基础上+1
--:
在原来的值的基础上-1
前缀++(--)和后缀++(--)的区别:
前缀:先自增或自减再参与运算
后缀:先用原来的值参与运算,再自增或自减
无论是前缀还是后缀,其值最终都会自增或自减
12.逗号表达式
逗号运算符:,
逗号运算式:
(表达式1,表达式2,表达式3,………………表达式n);
作用:
会从表达式1,一直执行到表达式n,表达式的结果以最后一个表达式的结果为最终结果
例:#include <stdio.h>
int main(int argc, const char * argv[]) {
int num1 = 10;
int num2 = 20;
int sum = (num1++,num2--,++num1,++num2,num1+num2);
printf("num1=%d num2=%d sum=%d",num1,num2,sum);//12 20 32
return 0;
}
1. C语言打印图形 最简单的printf
#include <stdio.h>
int main() {
printf(“hello world");
return 0;
2.数据类型!
为什么需要数据类型?
方便我们存储数据,因为可以按照类型来确定内存占用多少空间
整数(通俗的说就是需要数据是整数的时候用下面这三个 不过编程都只用int!!!!!):
short(最小) int(中等) long(最大)
实型:(小数)
float(小一点) double(大一点)
字符型:(保存单个字母)
char
'a' '%'
在程序里面,要保存单个字母应该用单引号包起来
也就说 编程的时候 需要数据是整数就用int 是小数就用 float(小一点) double(大一点)
是字母就用char。
3. 写代码要注意的地方:
1.不要忘记导入(其实就是开头打的这一行)头文件 #include <stdio.h>
2.main函数只能有一个,而且必须要有
3.语句后面千万要记得加分号,必须是英文(;)什么叫语句?简单来说就是写在main函数里面的代码就叫语句
4.main函数后面的大括号一定要成对出现,而且是英文的大括号
5.return 0可以省略的。
6.return 0一定要放在最后,否则,在return 0后面的代码不会被执行
\n是换行的
4.
常量:就是一直不会改变的量
程序里面怎么表示常量呢?
1.)字面量表示法
直接写值(数据)
1; 2; 10; 10.3; 'a';
int short long float double
疑问来了:
凭什么1要算做int而不算做long呢?
10.3凭什么要算作double不算做float?
就想表示一个long类型的常量和一个float类型的常量,怎么办呢??
10l; //加一个l 这样就代表了long类型的常量
10.3f;//加一个f 代表float类型的常量
提问:可以描述为short类型的吗?
不可以的!
如果要写字符型的常量
要想表示字符型常量,必须加''括起来,而且是英文的单引号
'a','b','c','\n'是一个字符,换行字符
'ab';
字符只能表示单个字符
2.)名字表示法:只读变量
语法:
const 类型(数据类型) 名字 = 值;
例:
const int num1 = 10;
const short num2 = 3;
const char ch1 = 'a';
5.printf的另外一种用法:
在你需要的位置,加一个%d,那么在后面,就可以填写一些值,它会自动的帮你填充过去
意思就好比:%d是挖了一个坑,然后后面的值,把它填充
注意:前面挖了几个坑,就一定要填几个坑
格式化控制符
%d 一定要填int型
%ld 填入long类型
%f 填入float类型
%lf 填入double类型
%c 填入的char类型
总结:
printf("要输出的内容"); //直接输出内容
格式化输出内容:
printf("格式化字符串",值列表);
例:
printf("字符1=%c\n",'a');
注意:格式化字符串后面要接一个英文的逗号"," 值与值之间用,隔开
6.变量:就是可以改变的量
语法:
类型 变量名 = 值;
例:
int salary = 2500;
char ch = 'a';
第二种写法:
类型 变量名;
变量名 = 值;
7.变量的命名规范:
1.起名要有意义
2.只能以下划线、字母、美元符号($)开头,然后后面可以接任意的下划线和字母和美元符号还有数字(注意:mac环境下,是可以使用中文的,但是不推荐使用)
3.不能以关键字作为名字
4.使用驼峰命名法:
第一个单词的首字母小写,后面的每个单词的首字母都大写
8. scanf函数的用法!!!
printf是输出
那么能不能输入呢?
就要用scanf
用来接收用户输入的数据
语法:
scanf("格式化控制符",地址列表);
要用取地址符:& (shift + 7)
int num = 10;
int num;//也有值,只不过是垃圾值
注意:一定要加取地址符&
也可以接收小数:
%f:float类型
scanf函数:
语法:scanf("格式化控制符",地址列表);
&:取地址符
格式化控制符前面要求输入什么类型的数据,那么地址列表那,就必须只能放相应类型变量地址
scanf函数的特点:
它是一个阻塞式的函数
使用scanf函数同时接收多个输入
其实就是在格式化控制符里面,多写几个格式化控制符,地址列表要按照顺序给
输入的时候可以输入N次(N等于格式化控制符的个数),或者以空格隔开
如果不想用空格在一行内输入,那么你在scanf函数里面可以指定符号
输入的时候必须按照这个符号来输入,否则会异常(后面的变量接不到值)
scanf里面最好不要接其他的文字。如果实在忍不住手贱要加东西,那么也一定要按照你在scanf里面写的格式来输入
用scanf的时候,最好不要先接收一个任意的数值类型(整型、实型),再接收一个char类型.
如果非要在后面接一个char类型的话,那么在scanf的格式化控制符之前要加一个空格
如果scanf要接收的是数字,那么不管你输入多少个空格,或者回车,都不会停止让你输入,直到你输入一个数字才会停止
如果接收的是int类型,你输入一个小数,那么会截取小数的整数部分
如果接收的是数字,你输入的是字符,那么会结束输入,但是不会把值给你存起来
scanf的运行原理:
scanf接收用户的输入,但是用户的输入并不是直接给了变量,而是存在一个叫缓冲区的地方
1.接收输入的时候,会先去缓冲区里面找,看缓冲区里面有没有合适的值,如果有,那么就直接不让你输入,直接把缓冲区里面的值给到你的变量,如果没有呢?会让用户继续输入,直到合适,才停止
9.算术运算符:
+:加,功能:就是把左右两个操作数的值相加得到和
-:减,功能:就是把左右两个操作数的值相减得到差
*:乘,功能:就是把左右两个操作数的值相乘得到积
/:除,功能:就是把左右两个操作数的值相除得到商
%:取余,功能:就是把左右两个操作数的值进行除法运算,得到余数。除不尽的数
1+2;
3+10;
10/2;
3*2;
10%3;
像这样的式子就叫算数表达式
算术表达式:就是用算数运算符组成的表达式就叫算数表达式
我们用表达式都是为了得到一个结果。
所以如果直接写算数表达式,毫无意义
如果要让它有意义起来怎么办?
1.直接在printf里面进行输出
2.保存到变量里面
常量或者变量都可以参与运算。
需要注意的地方:
1.加减乘跟数学一样
2.除不一样。当/两边的数都是整数的时候,那么得到结果也一定是整数
当/两边的数有一个是浮点数,那么得到的结果也一定是浮点数。运算结果是double还是float根据浮点数类型来确定
3.取余:就是得到余数
取余结果的正负性 只取决于左边的那个操作数,左边那个是正数,那么结果也一定是正数,左边那个是负数,那么结果也一定是负数。跟第二个数的符号木有半毛钱关系
一个算数运算式里面,谁先运算呢?
跟数学一样:先算乘除再算加减,有括号的先算括号里面的
如果同级则从左往右依次运算
程序里面符号有优先级之分:
数学里面:0可以做除数吗?
不可以!程序里面也不可以!
1.如果0作为除数的表达式两边都是常量,那么运行不会报错,只不过得到的结果是垃圾值
2.如果0作为除数,两边任何一方是变量,那么运行时会报错
3.浮点数不能做取余操作
10 类型装换!!!
在基本数据里面,所有的值都可以进行转换
int char long short float double
可以把float或者double转换成int,那么会截取小数的整数部分
像 int num = 10.3;这样的转换,就叫隐式转换,是由系统帮你完成的转换
显示转换:
那么就是程序员告诉编译器该转换成什么类型
补充:在同一个作用域里面变量不能同名,同名会报错
字符其实本质上就是正整数
=:
在数学中叫=号,在程序里面叫赋值号
数学里面代表 左边和右边是相等的关系
程序里面是代表把右边的值赋值给左边
赋值表达式也有结果,结果就是 = 右边表达式的结果
11.自增自减
年龄每年都在增长一岁,那么用程序如何描述?
++:
在原来的值的基础上+1
--:
在原来的值的基础上-1
前缀++(--)和后缀++(--)的区别:
前缀:先自增或自减再参与运算
后缀:先用原来的值参与运算,再自增或自减
无论是前缀还是后缀,其值最终都会自增或自减
12.逗号表达式
逗号运算符:,
逗号运算式:
(表达式1,表达式2,表达式3,………………表达式n);
作用:
会从表达式1,一直执行到表达式n,表达式的结果以最后一个表达式的结果为最终结果
例:#include <stdio.h>
int main(int argc, const char * argv[]) {
int num1 = 10;
int num2 = 20;
int sum = (num1++,num2--,++num1,++num2,num1+num2);
printf("num1=%d num2=%d sum=%d",num1,num2,sum);//12 20 32
return 0;
}
相关文章推荐
- C++ 多态的实现机制
- effective c++ 在资源管理类中小心copying 行为
- VC++ 控制外部程序,向外部程序发送一个消息的方法
- c++ 读取所有图片
- 第一个包含类的C++程序
- c语言链式存储实现
- C++设计模式 之 “对象创建”模式:Factory Method、Abstract Factory、Prototype、Builder
- 杭电ACM2017-字符串统计
- C++迭代器 iterator
- C++对象模型——默认构造函数的合成
- C++的几个知识点
- VC++ 在控件上写字时 字体的设置技巧
- 005--C++字符
- C++ 中的 Lambda 表达式
- 剑指offer第二十九题【最小的K个数】c++实现
- C语言 计算1!+2!+3!+4!
- 【ThinkingInC++】53、构造函数,析构函数,全局变量
- 统计1到100出现9的次数 1.0
- C++ stl vector
- 计算1-1/2+...+1/99-1/100