当前位置: 首页>编程语言>正文

C语言(一)C语言格式

C语言格式如下:

#include <stdio.h>                           //standart in out 缩写,标准输入输出, .h:header,头文件。因为我们引入了printf,所以要引用这个预编译处理器,
void main() //main函数是整个运行程序的起点,main函数可以返回一个值,也可以不返回值
{
printf("Hello World!");
}

编译和执行过程:

1.编译

形成目标代码/文件。目标代码是编译器的输出结果,常见扩展名为“.o”或“.obj”。

2.连接

  • 将目标代码跟c函数库相连接,并将源程序所用的库代码与目标代码合并。(例如:上面根据printf去stdio.h头文件中去查找)
  • 形成最终可执行的二进制机器代码(可执行程序)

3.执行

在特定的机器环境下运行c应用程序,例如windows,linux

在此介绍c语言的一个特殊命令,就是如何获得用户输入值,如下所示:

int a;

printf("请输入数值\n");

//&是获取变量地址,通过这种方式就把输入值赋值给变量a了。

scanf(“%d”,&a);

同时关于long类型,c语言中占用4个字节,long long才是占用8字节,这点跟java不一样。在c语言中0代表假,1代表真。(可以通过sizeof(int)或sizeof(6)获取数据字节长度)

c语言中的随机数:

srand(time(null));

rand();//注意,在rand前要加上srand,否则相同的程序产生的随机每次执行是固定不变的,在执行这条语句的时候要引入:#include <time.h>

c语言中的数组

c语言中的数组是占用一块连续空间内存的结构,数组名就是这块连续内存空间的首地址(即数组的第一个元素的地址),数组声明方式如下:

int nums[25];二位数组就是int num[10][25];

c语言中的常量定义:

#define N 50;//#define是宏定义,定义一个常量,常量还有一种定义方式:const int SIZE = 50;两者的区别是#define是宏定义,定义的时候没有确定常量类型,const定义的时候确定了常量类型,一般定义常量采用 const

c语言中的指针:

指针(pointer)简介:

指针是一个值为内存地址的 变量(或数据对象)。内存地址一般使用16进制表示,例如:0028FF44;示例如下:

int year = 2016;//year的地址是:0028FF44;

int * ptr_year = &year;地处就是将year的地址赋值给了ptr_year;可以将int * 理解为一种数据类型。指针基本用法示例如下(相同类型用相应类型的指针):

int * ptr_num;

char * ptr_name;

float * money_ptr;

double * p_price;

int * num = NULL;表示指针不指向任何地址。

获取指针的示例代码如下:

sprintf("指针地址是:%p",&num);%p是指针类型的占位符。

*ptr_num=1111;可以把指针对应空间的值修改掉。

一般指针不再使用的时候要将指针置为NULL:ptr_num=NULL;以免后续对别的数据产生影响。

数组与指针:

double sore[] = {1,2,3};

double * ptr_score = score;

int i;

for(i=0;i<3;i++){

printf(“数组值为:%.2lf”,*(ptr_score + i));//通过指针+i可以直接获取到下一个元素的地址;

}

有上面可以看出score就是数组的首元素地址,如果score+1就是第二个元素的地址(+1跨越的指针距离是与数组的类型的sizeof相等的)

二维数组的话,例如score就是score的首元素地址&score[0][0],使用指针访问二位数组可以用如下方式:*(a[1]+2)或者*(*(a+1)+2)

c语言中的函数(function):

规则:

内置函数:由c语言系统提供;需要在程序前包含定义函数的头文件

自定义函数:带参;不带参

常用的内置函数如下:

C语言(一)C语言格式,C语言(一)C语言格式_c语言,第1张

上面是内置函数举例,不是常用,重点介绍一个函数:malloc(n);//n是动态分配的字节数,示例如下:

int * nums;

nums = (int *)malloc(20);这样动态分配了一个20个字节的内存,相当于含有5个元素的int数组,用malloc比直接声明数组的优点是,有free(nums)函数,可以直接释放掉分配的内存。

还有一个与malloc等价的函数nums = calloc(5,sizeof(int));也可以直接free(nums)释放内存。calloc与malloc的区别是,malloc没有为数组元素赋初始值,calloc为每个元素赋初始值。

还有relloc是重新分配内存。


https://www.xamrdz.com/lan/5wn1967330.html

相关文章: