C语言基础
2017-08-08 10:48
169 查看
打印:helloworld!
#include <stdio.h>
int main()
{
printf("Hello World!\n");
//打印:helloworld
return 0;
}
(1)main是函数的名字,任何一段程序有且只有一个main函数,它表示程序的入口,执行程序都是从main开始执行的!我们写程序的时候也是先
写main函数,int 是函数的数据类型,表示main函数执行完毕后,正常情况下会返回一个int的数据!函数的后面都要接个括号;
(2){}里面的是main函数的函数体,里面存放的是执行的命令;
(3)#include <stdio.h>表示的头文件,以前是没有函数库的,程序员要是想实现具有某个功能的函数,都是自己动手写的,但是
有些函数大家都会用到,如果每个人都要重新写一遍的话太浪费资源了,所以呢程序员聚会的时候互相分享自己写的代码,久而久之呢就形成了函
数库,里面存放了很多大家写好的函数,我们只需要知道怎么用的,不需要知道具体怎么实现的!比如下面的printf就被封装在stdio.h这个库里面;
那么,#include <stdio.h>和#include "stdio.h"什么区别呢?这个面试或者笔试的时候一定要能够答出来,如果你这个都不知道,面试官会觉得
你是个假程序员!
(4)printf函数,可以实现打印()里面的内容到终端;
(5)printf("Hello World!\n");表示的是一个语句,用;号结尾
(6)\n:转义字符中的换行符;
(7)return 0;刚才我们说了main函数的返回值是int型的,得返回一个整数,return就是这个功能,它是C语言中的一个关键字,你看它的颜色
不一样吧;return 0代表函数正常结束。
(8)//后面跟的注释,在C语言中的注释有两种:段注释和行注释,注释的作用就是告诉看代码的人这段代码是什么意思?用来解释用的!在写程
序的时候一定要学会写注释,注释不光是给别人看的,有时候也是给你看的,因为复杂的代码写完之后没有注释,可能一个星期过后,你自己看都
看不懂,通过注释可以了解这段代码编写的思路!
1.变量
int num = 12;
编译器在编译的时候,会分配int字节大小的内存空间,内存空间的名字就是num,然后把12放到num所对应的内存空间里面,取值的时候就是根据
变量名num找到内存空间,然后把内存空间里面的取出来!
2.变量的作用域
①变量的作用域:局部变量的作用域在于定义的代码块里面,也就是{}包含的部分,全局变量的作用域是整个.c文件
②如果全局变量和局部变量名字重复的时候,局部变量会把全局变量给屏蔽掉。
3.数据类型
为什么会有数据类型呢?给数据分配合理的内存空间,既不太大,也不太小。
每种数据类型能表示的数据范围有多大呢?
以字节为单位,一个字节8个比特位!
只有0和1两种状态,然后是以补码的形式保存的:正数的补码就是本身,负数的补码就是它的绝对值按位取反加1;
int num = 5;
0000000000000000000000000000101
int num = -5;
按位取反:
1111111111111111111111111111010
加1:
1111111111111111111111111111011
有符号和无符号:
有符号:可以表示正数也可以表示负数;
无符号:只能表示非负数;
有符号 short:表示的最大范围? 2字节 = 16位
最大的:0111111111111111;(一个0+15个1);65535!
最小的:1111111111111111;(全是1); -65535!
sizeof:运算符,不是函数
sizeof用法:
测量变量的时候:sizeof i; sizeof(i);
测量数据类型的时候:sizeof(int);
4.运算符
算数运算符:+ - * /(除) %(取余) ++(自增) i++(先进行操作,然后再自增1); ++i(先自增1,然后再进行操作)
关系运算符:> < >= <= == !=
逻辑运算符:&&(与) ||(或) !(非)
5.语句
①赋值语句
int a = 0;
a = 3 + 5; //=号左边的叫“左值”,=右边叫“右值”,左值代表的是对应的存储空间
②判断语句(if--else)
if(表达式)
{
代码块;
}
else
{
代码块;
}
***********
if()
{
代码块;
}
else if()
{
代码块;
}
else
{
代码块;
}
/**************************************************/
if( (a > b ) && (a > c ) && ( b > c ))
{
代码块;
}
if( (a > b ) || (a > c ) || (b > c ))
{
代码块;
}
③选择语句(switch-case)
switch(表达式)
{
case 常量表达式1: 语句1;
...
case 常量表达式n: 语句n;
default: 语句n+1;
}
④循环语句
for循环:
for(表达式1;表达式2;表达式3)
{
代码块;
}
死循环:
for(;;)
{
}
while:
while(表达式)
{
代码块;
}
特点是:先判断后执行,再判断;
do-while:
do
{
代码块;
}while(表达式);
//别忘了分号;
特点:先执行后判断,再执行;
死循环:
while(1)
{
代码块;
}
goto:
4000
goto语句会破坏代码的结构;
goto L_END;
....
...代码块1;
...
L_END:
....
...代码块2;
当遇到goto语句的时候,会跳过代码块1不执行,接着执行代码块2!
★break和continue的区别:
continue:终止本次循环,接着进行下一次循环;
break:终止整个循环。
#include <stdio.h>
int main()
{
printf("Hello World!\n");
//打印:helloworld
return 0;
}
(1)main是函数的名字,任何一段程序有且只有一个main函数,它表示程序的入口,执行程序都是从main开始执行的!我们写程序的时候也是先
写main函数,int 是函数的数据类型,表示main函数执行完毕后,正常情况下会返回一个int的数据!函数的后面都要接个括号;
(2){}里面的是main函数的函数体,里面存放的是执行的命令;
(3)#include <stdio.h>表示的头文件,以前是没有函数库的,程序员要是想实现具有某个功能的函数,都是自己动手写的,但是
有些函数大家都会用到,如果每个人都要重新写一遍的话太浪费资源了,所以呢程序员聚会的时候互相分享自己写的代码,久而久之呢就形成了函
数库,里面存放了很多大家写好的函数,我们只需要知道怎么用的,不需要知道具体怎么实现的!比如下面的printf就被封装在stdio.h这个库里面;
那么,#include <stdio.h>和#include "stdio.h"什么区别呢?这个面试或者笔试的时候一定要能够答出来,如果你这个都不知道,面试官会觉得
你是个假程序员!
(4)printf函数,可以实现打印()里面的内容到终端;
(5)printf("Hello World!\n");表示的是一个语句,用;号结尾
(6)\n:转义字符中的换行符;
(7)return 0;刚才我们说了main函数的返回值是int型的,得返回一个整数,return就是这个功能,它是C语言中的一个关键字,你看它的颜色
不一样吧;return 0代表函数正常结束。
(8)//后面跟的注释,在C语言中的注释有两种:段注释和行注释,注释的作用就是告诉看代码的人这段代码是什么意思?用来解释用的!在写程
序的时候一定要学会写注释,注释不光是给别人看的,有时候也是给你看的,因为复杂的代码写完之后没有注释,可能一个星期过后,你自己看都
看不懂,通过注释可以了解这段代码编写的思路!
1.变量
int num = 12;
编译器在编译的时候,会分配int字节大小的内存空间,内存空间的名字就是num,然后把12放到num所对应的内存空间里面,取值的时候就是根据
变量名num找到内存空间,然后把内存空间里面的取出来!
2.变量的作用域
①变量的作用域:局部变量的作用域在于定义的代码块里面,也就是{}包含的部分,全局变量的作用域是整个.c文件
②如果全局变量和局部变量名字重复的时候,局部变量会把全局变量给屏蔽掉。
3.数据类型
为什么会有数据类型呢?给数据分配合理的内存空间,既不太大,也不太小。
每种数据类型能表示的数据范围有多大呢?
以字节为单位,一个字节8个比特位!
只有0和1两种状态,然后是以补码的形式保存的:正数的补码就是本身,负数的补码就是它的绝对值按位取反加1;
int num = 5;
0000000000000000000000000000101
int num = -5;
按位取反:
1111111111111111111111111111010
加1:
1111111111111111111111111111011
有符号和无符号:
有符号:可以表示正数也可以表示负数;
无符号:只能表示非负数;
有符号 short:表示的最大范围? 2字节 = 16位
最大的:0111111111111111;(一个0+15个1);65535!
最小的:1111111111111111;(全是1); -65535!
sizeof:运算符,不是函数
sizeof用法:
测量变量的时候:sizeof i; sizeof(i);
测量数据类型的时候:sizeof(int);
4.运算符
算数运算符:+ - * /(除) %(取余) ++(自增) i++(先进行操作,然后再自增1); ++i(先自增1,然后再进行操作)
关系运算符:> < >= <= == !=
逻辑运算符:&&(与) ||(或) !(非)
5.语句
①赋值语句
int a = 0;
a = 3 + 5; //=号左边的叫“左值”,=右边叫“右值”,左值代表的是对应的存储空间
②判断语句(if--else)
if(表达式)
{
代码块;
}
else
{
代码块;
}
***********
if()
{
代码块;
}
else if()
{
代码块;
}
else
{
代码块;
}
/**************************************************/
if( (a > b ) && (a > c ) && ( b > c ))
{
代码块;
}
if( (a > b ) || (a > c ) || (b > c ))
{
代码块;
}
③选择语句(switch-case)
switch(表达式)
{
case 常量表达式1: 语句1;
...
case 常量表达式n: 语句n;
default: 语句n+1;
}
④循环语句
for循环:
for(表达式1;表达式2;表达式3)
{
代码块;
}
死循环:
for(;;)
{
}
while:
while(表达式)
{
代码块;
}
特点是:先判断后执行,再判断;
do-while:
do
{
代码块;
}while(表达式);
//别忘了分号;
特点:先执行后判断,再执行;
死循环:
while(1)
{
代码块;
}
goto:
4000
goto语句会破坏代码的结构;
goto L_END;
....
...代码块1;
...
L_END:
....
...代码块2;
当遇到goto语句的时候,会跳过代码块1不执行,接着执行代码块2!
★break和continue的区别:
continue:终止本次循环,接着进行下一次循环;
break:终止整个循环。