变量,循环控制语句

一、程序执行的过程

1.预编译:主要处理源代码中的预处理指令,引入头文件,去除注释,处理所有的条件编译指令,宏的替换,添加行号,保留所有的编译器指令。

gcc -E main.c -o main.i

2.编译:编译过程所进行的是对预处理后的文件进行语法分析,词法分析,语义分析,符号汇总,然后生成汇编代码。

gcc –S main.i -o main.s

3.汇编:这里的汇编所说的是一个过程,将汇编代码转成二进制文件,二进制文件就可以让机器来读取。每一条汇编语句都会产生一句机器语言。

gcc -c main.s -o main.o

4.链接:将目标文件、启动代码、库文件链接成可执行文件的过程,这个文件可被加载或拷贝到存储器执行。

连接处理可以分为两种:

①静态链接:(编译时)

链接器将函数的代码从其所在地(目标文件或静态链接库中)拷贝到最终的可执行程序中。这样该程序在被执行时这些代码将被装入到该进程的虚拟地址空间中。静态链接库实际上是一个目标文件的集合,其中的每个文件含有库中的一个或者一组相关函数的代码。

为创建可执行文件,链接器必须要完成的主要任务:

  1. 符号解析:把目标文件中符号的定义和引用联系起来;
  2. 重定位:把符号定义和内存地址对应起来,然后修改所有对符号的引用。

②动态链接(加载运行时):在此种方式下,函数的定义在动态链接库或共享对象的目标文件中。在编译的链接阶段,动态链接库只提供符号表和其他少量信息用于保证所有符号引用都有定义,保证编译顺利通过。动态链接器(ld-linux.so)链接程序在运行过程中根据记录的共享对象的符号定义来动态加载共享库,然后完成重定位。在此可执行文件被执行时,动态链接库的全部内容将被映射到运行时相应进程的虚地址空间。动态链接程序将根据可执行程序中记录的信息找到相应的函数代码

gcc -o main main.o

5.处理器读取并解释存储在存储器中的指令

Shell:命令行解释器,为用户提供了一只与系统打交道的方式。它等待用户的输入,当用户输入一行命令后,shell先判断它是不是一个shell内置命令,如果不是,shell会假定用户输入为一个可执行文件的名字,从而去加载并执行该文件。因此,当我们通过编译系统将源文件编译成可执行二进制文件后,在shell中输入我们得到的可执行二进制文件名,shell将其从磁盘中加载到存储器(注:我们的可执行文件是存放在磁盘上的),并通过处理器进行解释执行,得到最终的结果,输出到终端(显示器)上进行显示。自此,我们的hello, world程序完成了其生命周期。

二、代码规范

代码规范:运算符前后要加空格,不同模块之间要换行

三、变量

/*
#include 宏 导入头文件
什么情况下需要导入头文件:需要用到外部提供的一些函数或者变量
导入的方式:
< > 导入系统自带的库 头文件 告诉编译器首先从系统类库里面去查找这个头文件,如果类库里面没有那么从当前这个工程文件里面查找
" " 导入自己写的头文件 告诉编译器先从当前这个工程里面去查找 如果没有 那么再去系统类库里面去查找
*/
#include <stdio.h>

/*
argc: 执行这个程序时 编译器传递过来的参数个数
argv: 每一个参数的字符串组成的数组
IDE环境下 argc=1 argv=程序路径

int main(int argc,char *argv[]){
printf("argc = %d\n", argc);

for (int i = 0; i < argc; i++){
printf("argv[%d] = %s\n", i, argv[i]);
}
return 0;
}

int 返回值:记录程序执行的状态
如果返回0 表示正常结束
如果返回-1 表示非正常结束 如果程序在执行过程中占有资源(内存资源 文件资源) 此时系统会没收分配的资源

关键字:int const char return float double long exit
有特殊的含义 在定义变量的时候不能用关键字来当变量名
*/

int global = 0; //全局变量

int main(int argc, const char * argv[]) {

/*
1个字节 = 8位
变量 常量:程序在执行过程中有些数据或者资源需要被长时间记录 就需要定义一个变量或者常量来保存它
整形数据 int 1 23 940
浮点型数据 float 78.5 125.4
字符数据 char ‘A‘ ‘B‘
长整型数据 long

定义一个变量:系统会立刻分配内存
声明一个变量:不会立刻分配内存 当使用这个变量的时候才去分配内存
*/
int temp = 10;

float weight;
weight = 165.3;

printf("int size = %lu\n", sizeof(int));
printf("float size = %lu\n", sizeof(float));
printf("double size = %lu\n", sizeof(double));
printf("long size = %lu\n", sizeof(long));
printf("char size = %lu\n", sizeof(char));

printf("global = %d\n", global);

//变量的作用域
int a = 20;//局部变量 临时变量
//int a = 340; 同一个变量在同一个代码块里面不能被重复定义
{
global = 39;
//...
printf("a = %d %p\n", a, &a);
int a = 10; //临时变量 局部变量
//...
//...
printf("a = %d %p\n", a, &a);
}
printf("a = %d\n", a);

//全局变量
//静态变量
printf("global = %d\n", global);
return 0;
}

四、循环控制语句

//1 2 3 4
for (int i = 1; i <= 4; i++){
for (int j = 1; j <= 4; j++) {
for (int k = 1; k <= 4; k++) {
if (i != j && i != k && j != k){
printf("%d\n", i*100+j*10+k);
}
}
}
}

//break 直接结束当前这个循环
//continue 结束这一次循环 继续下一次循环
for (int i = 0; i < 10; i++) {
if (i == 5){
//break;
continue;
}
printf("%d ", i);
}

for (int i = 1; i <= 4; i++) {
for (int j = 1; j <= 4; j++) {
//判断i 和 j是否相同
if (i == j){
continue;
}
for (int k = 1; k <= 4; k++) {
if (i == k || j == k ) {
continue;
}

printf("%d\n", i*100 + j *10 + k);
}
}
}

原文地址:https://www.cnblogs.com/jianze/p/9319754.html

时间: 2024-11-08 06:45:14

变量,循环控制语句的相关文章

(7)javascript的程序控制结构及语句------(2)循环控制语句、跳转语句、对话框

一.循环控制语句 循环语句主要就是在满足条件的情况下反复执行某一个操作,循环控制语句主要包括while语句.do...while语句 和for语句. 1.While语句 语法: While(条件表达式语句) { 执行语句块 } 当"条件表达式语句"的返回值为true时,则执行大括号"{ }"中的语句块,当执行完大括号"{ }"的语句块后,再次检测条件表达式的返回值,如果返回值还为true,则重复执行大括号"{ }"中的语句块,

javascript的程序控制结构及语句------(2)循环控制语句、跳转语句、对话框

一.循环控制语句 循环语句主要就是在满足条件的情况下反复执行某一个操作,循环控制语句主要包括while语句.do...while语句 和for语句. 1.While语句 语法: While(条件表达式语句) { 执行语句块 } 当“条件表达式语句”的返回值为true时,则执行大括号“{ }”中的语句块,当执行完大括号“{ }”的语句块后,再次检测条件表达式的返回值,如果返回值还为true,则重复执行大括号“{ }”中的语句块,直到返回值为false时,结束整个循环过程,接着往下执行while代码

循环控制语句

1. Java中的循环控制语句一共有3种,分别是while,do… while以及for循环. 2. while循环,形式为: while(布尔表达式) { //待执行的代码 } public class WhileTest { public static void main(String[] args) { int a = 2; //循环变量 int sum = 0; //存储相加后的结果 while(a <= 100) { sum += a; a += 2; } System.out.pri

PHP循环控制语句之“while”

在我们的程序开发中,有时可能需要重复的使用某段代码或者某段函数,比如需要输入“1*2*3*4...*100”,如果让人工来输入的话,会浪费很多的时间,也很繁琐,但是,在这种情况下,有一个很好的办法,就是使用我们的PHP循环控制语句,使用PHP循环控制语句,可以快速的完成计算,在PHP中,为我们提供了四种循环控制语句:while.do...while.for.和foreach.本章,先给大家讲解第一种循环控制语句“while”循环语句.直线电机分类 “while”循环语句的语法格式 while循环

22:python中的循环控制语句

循环控制语句可以更改语句执行的顺序.Python支持以下循环控制语句: 控制语句 描述 break 语句 在语句块执行过程中终止循环,并且跳出整个循环 continue 语句 在语句块执行过程中终止当前循环,跳出该次循环,执行下一次循环. pass 语句 pass是空语句,是为了保持程序结构的完整性. 22.1 break语句 Pythonbreak语句,就像在C语言中,打破了最小封闭for或while循环. break语句用来终止循环语句,即循环条件没有False条件或者序列还没被完全递归完,

shell脚本编程之循环控制语句(continue/break/sleep)

循环控制语句: continue:提前结束本轮循环,而直接进入下一轮循环判断: while  CONDITION1; do CMD1 ... if  CONDITION2; then continue fi CMDn ... done 示例:求100以内所有偶数之和: #!/bin/bash # declare -i evensum=0 declare -i i=0 while [ $i -le 100 ]; do     let i++     if [ $[$i%2] -eq 1 ]; th

Python条件控制语句与循环控制语句(四)

程序语言的条件控制语句与循环控制语句都一样,都是if与while还有for等. Python的条件语句是通过一条或多条语句的执行结果(True或false)来决定执行的代码块. If语句一般格式为: If condition_1 : statement block_1 elif condition_2  : Statement block_2 else condition_3 : Statement block_3 如果condition_1条件成立,则执行 statement block_1,

Python 变量循环

.title { background-color: black; color: aliceblue; height: 28px; width: 100%; line-height: 28px; text-align: center; font-family: 仿宋; font-size: 15px; opacity: 0.5 } --> { } Python 变量-循环 一.变量 不管什么编程语言或脚本语言 在定义变量时都有一定的规则.Python变量定义规则如下: 变量名只能是字母.数字或下

条件,循环控制语句

循环控制语句:for,while.在python中for比较常用,主要用来遍历循环序列,可以嵌套. ##相互嵌套 a=[['apple','banana','grape'],('1','2','3')] for x in a: for y in x: print(y,end=' ') 输出结果:apple banana grape 1 2 3 Python中还提供了range函数 range(x,y,z) 举个例子:range(1,6,2)意思是从1遍历到6,步长为2,可以取1,不能取6.步长默