C语言变量的基本使用二

C语言编程基础

1.C语言功能:类似英语,英语是实现人和人交流沟通的工具

C语言实现人和计算机交流沟通的工具

除了C语言,还有C++,JAVA,Python,Go,Rust等

2.C语言背景简介(了解)

1972年由丹尼斯里奇发明C语言

1978年出版《the c programming language》,预示着C语言正式走向世界

1989年发布C89标准(类似普通话)

1999年发布C99标准(扩展功能)


3.编写人生第一个标准C程序

具体实现步骤:

mkdir -p /home/tarena/stdc/day02

cd /home/tarena/stdc/day02

vim helloworld.c 添加如下内容


/*

这是我的第一个C语言程序

我很激动

*/

//这个仅仅作为一个测试

#include

int main(void){

printf("你好,世界.");

printf("hello,world.\n");

return 0;

}

保存退出

继续执行以下命令:

gcc helloworld.c 作用:编译程序

ls -lh 此时多了一个a.out文件

./a.out 作用:运行a.out程序


4.总结:C程序基本编程规范

a)C程序对应的文件有两种:

源文件:以.c结尾,例如:helloworld.cd

头文件:以.h结尾,例如:stdio.hello

任何C程序必须有一个源文件,头文件可以有,可以没有


b)C程序注释(就是程序diamante的解释说,给程序员看,不参与程序的编译和运行)

1./*中间就是要解释说明的注释内容*/

  优点:可以注释多行

  缺点:不能嵌套注释,例如:/*我是大神 /*我是小神*/ */ (错误语法)

2.//注释内容

  有点:可以嵌套注释,例如://////我是大神

  缺点:不能多行注释

c)C程序要包含一个别人写好的头文件(就是将头文件的内容全部拷贝过来),格式有两种,

1.语法:#include <头文件名>

  例如:#include

  语义:告诉gcc编译器将来默认到linux系统的/usr/include目录下找stdio.h开头的文件

找到之后将这个头文件的内容全部拷贝过来

2.语法:#include "头文件名"

  例如:#include "stdio.h"

  语义:告诉gcc编译器现在当前目录下找stdio.h头文件,如果找到了,那就包含拷贝

如果没有找到,再去/usr/include目录下找头文件stdio.h,如果找到那就包含拷贝

如果还没找到,报错

d)C程序必须要包含一个唯一的主函数,名称必须交main

  并且main函数的原型(),必须如下:

  int main(void){

//代码内容

  }


  或者:

  int main(void)

  {

//代码内容

  }


  结论:将来运行C程序时,linux操作系统之人main函数,必须从main函数开始从上往下挨个执行


e)C程序的主函数main中(括号里面的内容)编写规范:

  1.每条语句后面必须跟分好";"

  2.执行顺序:从上往下挨个执行

  3.只要遇到或者执行return这个关键字,C程序立马结束

return后面可以跟一个数字,例如:

return 0; 表示告诉操作系统,此程序执行结束了并且执行的很正常

return -1; 表示告诉操作系统,此程序执行结束了但是执行的时候有点问题

例如:main函数的形式如下

int main(void){

printf("你好,世界.");

printf("hello,world\n");

return 0;

}


f)人生认识的第一个标准C库函数printf(就是大神写好的函数,我们直接拿来用即可)

  1.标准C库函数使用,调用语法:函数名(信息);

  2.printf函数的功能:向显示器打印输出信息

  3.调用格式:printf("要输出打印的信息\n");

注意:'\n':表示回车换行,就是打印完信息之后将光标换到下一行

如果没有'\n',光标继续停留在本行

例如:

printf("abc");

printf("efg\n");

效果:abcdefg

printf("abc\n");

printf("efg\n");

效果:

abc

efg

  4.注意:要想调用大神的printf函数,必须开头包含头文件stdio.

  5.printf利用占位符可以打印输出指定的数字信息

  %d占位符功能:按照整数形式打印输出一个数字

  例如:printf("1 + 1 = %d\n",2); 语义:将来数字2会放到%d这个位置,然后将1+1=2这个信息输出到显示器上

printf("1 + 1 = %d\n",1+1); 语义:先算1+1=2,然后把计算的结果放在%d这个位置最后打印1+1=2

  5.大名鼎鼎的gcc编译器(作者:GNU软件之父理查德斯托曼)

  a)gcc编译器功能:类似翻译官,将C程序源文件和头文件翻译生成计算机能够识别的可执行文件

类比:中文版三国(源文件)----->翻译官(gcc编译器)------>英文版三国(计算机识别的可执行文件)

  b)gcc编译源文件流程三步骤:

1.预处理:就是将源文件中要包含的头文件,例如:stdio.h全部拷贝过来

  此过程简称预处理

  对应的gcc命令选项:-E

  预处理的命令:gcc -E -o 预处理文件.i 源文件.c

  注意:-o 后面只跟要生成的新文件

  语义:对源文件进行预处理生成预处理文件.i


2.只编译不链接:就是将预处理文件进行单独翻译生成计算机能够识别的可执行文件

但此时生成的文件不包含大神的代码,例如:printf

所以此程序此时还不能运行

对应的gcc命令选项:-c

对应的gcc命令格式:gcc -c -o 可执行文件.o 预处理文件.i

3.链接:就是讲大神的各种代码,例如printf和自己的程序合并起来,合并的专业术语叫链接

最终生成计算机能够执行的一个完整程序

对应的命令:gcc -o 可执行文件 可执行文件.o

最终生成可执行文件

  c)务必掌握gcc编译源文件的三种方式:

1.流氓发:gcc helloworld.c 默认都会生成a.out(这个名字做不到见名知意)

2.分步编译:

gcc -E -o helloworld.i helloworld.c //先预处理

gcc -c -o helloworld.o helloworld.i //然后只编译不链接

gcc -o helloworld helloworld.o //最后链接大神的printf代码,最终生成helloworld可执行程序

./helloworld //运行程序

3.一步到位

gcc -o helloworld helloworld.c //直接对源文件进行翻译生成可执行文件

  心里要明白:gcc还要做三件事,只是看不到而已

./helloworld

案例:利用以上三种方法,对刚才的helloworld.c进行编译运行

------------------------------------------------------------------------------------------------------------------

第三课:C语言(C程序)的变量

1.务必掌握计算机内存相关的概念

  内存特点:暂存CPU运算之前的数据和运算之后的数据,还有暂存程序,任何程序都是在内存中存储,

所以势必要消耗内存,速度快,掉电数据丢失

结论:任何程序最终都是玩内存

  字节(Byte):计算机将内存分成一格一格,每一格用来存储一格数字,每一格的专业术语叫字节

注意Byte的简称:B

换算公式:1KB = 1024B

  1MB = 1024 * 1024KB

  1GB = 1024MB = 1024 * 1024KB = 1024 * 1024 * 1024B


  地址(Address):计算机给内存的每个字节指定一格固定的唯一的编号,此编号从0开始,后续地址加1即可

此编号的专业术语叫地址

切记:不管在哪里,只要知道了内存的某个字节的地址,将来就可以通过地址对内存进行访问(读或者写)

类似:不管快递小哥在哪里,快递小哥知道你的地址,就可以给你送快递

  存储区(Buffer):计算机将1个字节或者多个连续的字节形成一个存储单元用来存储数字

例如:300亿这个数字如果用1个字节来存储显然这个数字太大了,1字节内存存不下

  可以用4字节的连续内存来存储这个数字

  首地址(base address):存储区中第一个字节的地址又称首地址


  Q:C程序如何分配内存空间来存储数字呢?

  A:切记,任何程序要想访问内存,必须先分配获取到内存才能访问

如果没有分配获取到内存,直接去访问:操作系统直接将程序干掉,杀死

C程序通过定义变量来实现分配的内存!

2.变量功能:就是给C程序分配内存空间,一旦分配内存臭狗,程序就可以对内存进行存储数字还可以修改存储的数字

3.定义变量(又称分配内存)语法格式:

  数据类型 变量名 = 初始值(可以有,可以没有);

  例如:int a = 250;

  说明:'int' 它是一个关键字,它对应一种数据类型,表示将来可以分配4字节的内存空间

'a' 变量名

'250' 就是给分配的内存放了一个数字250

  结论:这条语句的结果是分配了4字节内存空间并且这块内存空间放了一个数字250

  例如:修改变量的值(也就是修改内存存储的数字)

int a = 250;

a = 520; //修改变量a的值为520,也就是将内存中原先的数字250修改为520,其中"="就是重新赋值的意思

打印变量的值(打印内存中存储的数据值):printf("%d\n",a); //将变量a的值打印输出

4.定义变量的四种形式:

  a)只定义(只分配内存)不初始化(不赋初始值)

int a; //此时变量a的值或者对应的内存存储的数字是一个随机乱七八糟的数字

  b)定义并且初始化

int a = 250;

  c)连续只定义不初始化多个变量(逗号分隔)

int a,b,c; //同样变量的值是乱七八糟的随机数

  d)连续定义并且初始化多个变量

int a = 100, b = 200, c = 300;

小案例:演练变量的使用

实验步骤如下:

cd /home/tarena/stdc/day02

vim var.c

gcc -o var var.c //也可以分步编译

./var

5.标识符命名规则

  a)标识符:就是变量名(例如:a,b,c,d等)或者函数名(例如:main,printf等)

  b)标识符命名规则:

1.首字符不能是数字,只能是字母或者下划线,区分大小写

  例如:int 2var; //gcc报错

int v2ar; //可以

int _2var; //可以

2.尽量做到见名知意

  int a = 18; //你能知道a代表年龄的意思吗?

  int age = 18; //age就是年龄的意思

  int weight = 200; //体重

  int height = 200; //身高


3.驼峰(windows程序员)和下划线(linux程序员)

  驼峰:int nAge = 19;

int GreateWindows = 250;

  下划线:int Greate_windows = 250;


4.C语言的关键字不能使用

  例如:int,return,main,void等不能用

  例如:int int = 250; //gcc报错

int void = 250; //gcc报错

6.C语言的基本编程风格:(不强求,其他风格都要根据公司来定)

  a)各种该

该有空格的加空格

该对齐的对齐

该独占一行的独占一行

该有TAB键的就添加TAB键

例如:

int main(void){printf("hello,world\n");return 0;} //理论上可以,实际阅读起来要命!

应该:

int main(void){

//独占一行

//对齐

printf("abc\n");

printf("efg\n");

//独占一行

}

  b)代码尽量写在屏幕左侧的2/3区域,右侧1/3建议留白,如果超过换行

你可能感兴趣的:(C语言变量的基本使用二)