手记

c语言学习之路——由浅入深(快速掌握c基础)文章

后!

1.第一个C程序:HelloWorld.c

首先我这里是使用这个软件编写的:下载地址:文章末尾

安装过程一直next就好了

安装后在你的代码目录创建一个HelloWorld.c,代码目录可以随意,然后双击打开HelloWorld.c就可以默认进入我们下载的c开发软件中,如图:

其中图中标记为我们java中常用的编译和运行

下面就可以开始我们c语言的第一个helloWorld,通常说从helloWorld开始可以快速成为大神:

#include  // java import xxx.xx.pack 引用函数的声明 #include

main() // 程序的入口函数

{

//代码文件目录是本级目录则会执行成功,否则会找不到该类

printf("Hello world ! "); // 控制台打印一个hello world

//如果不是本级目录必须先指定目录地址,才能执行成功

system("java -classpath c:\ HelloWorld");

system("pause"); // 调用windows下系统的命令 让程序暂停执行 方便观察程序的执行结果

}

代码中我们首先可以看到

1、 这个东西拿java来说就是我们通常的包名

2、main函数是主入口,和java一样

3、c语言中必须使用system("pause");使命令行暂停,方便观察程序的执行结果,否则结果会在你眼中一闪而过

2.C语言的基本类型与JAVA基本类型对比:

上一节中我们开始我们的第一个helloWorld,下面我们讲学习c中的数据类型:

// java数据类型 和长度int 4个字节 double 8个字节 float 4个字节 long 8个字节

// short 2个字节 boolean 1个字节 char 2个字节 byte 1个字节

// char, int, float, double, signed, unsigned, long, short and void

// c语言中 数据类型比java少一些 在c语言中没有 boolean类型的数据 int 1 代表真 0 代表假

// c 语言中没有String类型的数据 java中表示一个字符串 String , c语言中表示字符串 通过char类型的数组来表示字符串

// c 语言没有byte类型 所有用char的类型表示byte类型

#include  #include

// sizeof(); c语言的一个函数 可以把 某种数据类型的长度获取出来 int

main()

{ // %d 类似sql语句的? 占位符

printf("char的长度为%d ", sizeof(char));//1

printf("int的长度为%d ", sizeof(int));//4

printf("float的长度为%d ", sizeof(float));//4

printf("double的长度为%d ", sizeof(double));//8

printf("long的长度为%d ", sizeof(long));//在不同的情况下可能会有不同的大小,但是long的长度一定比int大 4

printf("short的长度为%d ", sizeof(short));// 2

//signed, unsigned, 数据类型的修饰符

// signed int ; 代表的是有符号的int的数据

// unsigned int ; 无符号的int数据

printf("signed int的长度为%d ", sizeof( signed int));//4

printf("unsigned int的长度为%d ", sizeof( unsigned int));//4

// 符号的修饰符 只能修饰 整数类型的数据 long int

// 不能修饰 浮点型的数据 float double

// printf("signed float的长度为%d ", sizeof( signed float));

system("pause"); // 调用windows下系统的命令 让程序暂停执行 方便观察程序的执行结果

}

从上面我们可以知道,c语言有以下几种数据类型:

char, int, float, double, long, short

使用char表示java的byte类型数据

使用char数据去表示java中String类型的数据

c的两种修饰符 signed, unsigned,

3.C语言中的输入输出函数:

上一节我们了解c语言的基本数据类型,下面我们看看c的输入输出函数:

/*%d - int

%ld – long int

%c - char

%f - float

%lf – double

%x – 十六进制输出 int 或者long int 或者short int

%o - 八进制输出

%s – 字符串

Int len;

Scanf("%d",&len);*/#include  // java import xxx.xx.pack 引用函数的声明 #include

main() // 程序的入口函数

{ int i = 3;

float f = 3.1415;

double d = 6.2815;

char c = 'A'; //通过单引号定义字符

short s = 2;

//输出的时候占位符和数据类型必须一一对应,否则得不到正确的结果

printf("int i=%d ",i);

printf("float f=%f ",f);

printf("char c=%c ",c);

printf("double d=%lf ",d);

printf("short s=%d ",s);

/*char arr[20] ; //定义一个长度为20的数组

//java中是System.in

scanf("%s",arr); // 从键盘接受一个字符串,放在c数组里面

//java中是System.out

printf("s =%s ",arr);

*/

int j ;

scanf("%d", &j);//&代表的是取地址

//从控制台得到j地址所代表的址输出

printf("j=%d ",j);

system("pause"); // 调用windows下系统的命令 让程序暂停执行 方便观察程序的执行结果

}

从代码中我们知道c语言的 输入:scanf();函数 根据地址去输入&j 输出:printf();函数

4.指针入门:

上一节我们学到了输入输出,下面我们将学习一个新名词指针 首先java中是没有指针这个名词的,

指针是什么? 指针就是一个地址 地址代表的就是一块内存空间 指针变量是什么? 用来存放指针

从上面我们就可以知道java中的内存控件就是c语言中的指针,下面我们看下代码:

#include  #include

main()

{

int i =5;// 定义一个int 类型的变量i 值 =5

//%#X表示16进制的地址占位符

printf("i的地址 %#X ",&i);

//获取i的地址,&i就是一个指针

// &i;

//定义一个指针变量,数据类型*

int* p ; // 指针变量 定义一个int* 类型的变量p

//其他两种表示方式:int *p, int * p;

p = &i; // 就是把i的指针赋给指针变量p ,现在指针变量p里面存放的内容(数据) 就是i的地址

printf("p里面的内容为(i的地址) %#X ",p);

//*号 操作符

// *号的几种含义

//1 . *号放在某种数据类型的后面,代表就是这种数据类型的指针 int* float*

//2 . *号 代表一个乘法符号 3*5 = 15;

//3 . *号放在一个指针变量的前面 -> 代表取这个指针变量所存放的地址里面对应的数据

printf("i=%d ",i);

printf("*p的值%d ",*p);

// 改变p的值 会不会影响i的值?

//p = NULL;

// printf("i=%d ",i);//5

// 改变i的值 会不会影响p的值?

// i = 100;

// printf("p里面的内容为(i的地址) %#X ",p);

// 通过上述实验 p和 i 是两个不同的变量 ,改变i的值 不会影响 p的值,同理,更改p的值 也不会影响i的值

// 更改*p的值 会不会影响i的值

// *p = 88;

// printf("i=%d ",i); //88

// 更改i的值 会不会影响 *p的值呢?

// i = 99;

// printf("*p的值%d ",*p); //99

//*p 和i 其实代表的是同一个变量,代表是同一块内存空间

system("pause"); // 调用windows下系统的命令 让程序暂停执行 方便观察程序的执行结果

}

从代码中我们可以知道:

· 1.指针就是地址,而c语言中我们在变量前面加上&符号就可以到地址也就是指针如:int i=9;那么i的指针表示方式是&i

· 2.指针变量就是用来存放指针的一个变量,如:数据类型* 变量名;如:int * p 这样就是一个指针变量,将我们上面的&i=p这样我们就将i的指针放在了指针变量p中

· 3.得到指针变量中的值使用符号*,例如我们将上面指针变量p的指针i的值取出来表示就是:*p

· 4.*p 和i 其实代表的是同一个变量,代表是同一块内存空间

·

5.指针介绍:

上一节我们已经知道了指针和指针变量的用法,下面我们将通过一个小程序进一步说明指针

#include  #include

main()

{

// 所有的变量都会分配一块内存空间

// 指针就是用来表示一块内存空间的地址的

// 地址可以用过 &这个符号获取到某个变量的在内存中的地址

// 这个地址如果想把他存放起来 就需要有一个变量 去存放这个地址

// 存放内存地址的变量 就是指针变量

// 指针和指针变量

// 指针是用来表示一块内存地址的,

// 指针变量是用来存放一个内存地址的 .

//

printf("ready go! 剩余时间60秒 ");

int time = 60;

printf("time变量对应的内存地址为%#X ", &time);

for(;time>0;time--){

printf("剩余时间%d ",time);

sleep(4000);

}

printf("游戏结束");

system("pause"); // 调用windows下系统的命令 让程序暂停执行 方便观察程序的执行结果

}

从代码中我们编写了一个for循环,打印time指针值,可以在命令行程序已经在开始走了

从图中可能大概你们可以看到我使用一个外挂软件找到了time指针值,外挂地址



作者:云上伞
链接:https://www.jianshu.com/p/910a00795353


1人推荐
随时随地看视频
慕课网APP