快速上手c语言,需要知道的一些要点(持续更新,我用的VS2012编的)

地址和指针

  指针的一般形式:类型说明 *变量名(*表示该变量是一个指针变量,变量名即为定义的指针变量名,类型说明表示指针变量所指向的变量的数据类型)

指针变量和普通变量一样,使用前需定义并赋值

& 变量名 如&a表示变量a的地址,及地址运算符

&和*的运算符优先级别相同,按自左向右的方向结合

 

传递指针给函数:

定义函数无非就是对一些数值进行修改,当把函数的参数定义为所需修改的变量类型的指针时,则对指针进行相应的赋值就行,然后调用函数时参数改为需修改的变量的存储值即&变量

要循环数组是也需记得定义一个相应类的指针,通过数组对指针进行循环,数组不能直接循环,因为数组是常量指针。

 

 

C 不支持在调用函数时返回局部变量的地址,除非定义局部变量为 static 变量。

因为局部变量是存储在内存的栈区内,当函数调用结束后,局部变量所占的内存地址便被释放了,因此当其函数执行完毕后,函数内的变量便不再拥有那个内存地址,所以不能返回其指针。

除非将其变量定义为 static 变量,static 变量的值存放在内存中的静态数据区,不会随着函数执行的结束而被清除,故能返回其地址。

 

产生随机数的代码

函数指针

 

数组和指针

  当定义一个一维数组是,系统会在内存中为该数组分配一个存储控件,其数组的名称就是数组在内存中的首地址。若定义一个只争变量,并将数组的首地址传给指针变量,则该指针就指向了这个一维数组

输入输出

  字符串输入输出:(需要添加头文件stdio.h)

                 输出单个字符:putchar

                 输入单个字符:getchar(得到的字符可以赋给一个字符变量或整型变量)

                 字符串输出:puts(会自动在字符串后加\0即自动换行)

                 字符串输入:gets函数,字符类型(语法格式char *gets(char *str))

  格式输出函数:输入、输出函数scanf和printf

printf函数的格式字符:

 

scanf函数(一般格式scanf(格式控制,地址列表))

循环控制

转移语句:

        goto 标识符;无条件转移语句,即可令程序立即跳转到函数内部的任意一条可执行的语句。

        break语句,跳出所有循环

        continue语句,跳出所有循环

字符串处理函数

字符串复制(需先添加头文件string.h):

字符串复制,strcpy(目的字符数组名, 源字符数组名)

字符串连接,strcat(str1, str2),输出str1

字符串比较,strcmp(字符数组名 1, 字符数组名2)

           字符串1等于字符串2,返回值0

           字符串1大于字符串2,返回值为正数

           字符串1小于字符串2,返回值为负数

字符串大小写转换,大写Strupr(字符串)

                  小写strlwr(字符串)

获得字符串长度:strlen(字符数组名)

内部函数和外部函数

内部函数:在函数的返回类型前加上关键字static,就将原来的函数修饰成内部函数(内部函数只能在所在的源文件中使用)

外部函数:外部函数是可以被其他源文件调用的函数,定义外部函数使用关键字extern进行修饰

 

头文件的引入

主要:

解决scanf使用问题

声明#define _CRT_SECURE_NO_WARNINGS

结构体

Stuct 结构体名{

   成员列表

}变量名列表;

变量可直接访问结构体的成员列表

 

Struct 结构体名{

  成员列表

}结构体数组;

 

Struct 结构体名{

  成员列表

}结构体数组={初始值列表};

 

结构体指针

结构体类型 *指针名

(*pStruct).成员名

 

字符串

 

C typedef

typedef 仅限于为类型定义符号名称,#define 不仅可以为类型定义别名,也能为数值定义别名,比如您可以定义 1 为 ONE。

typedef 是由编译器执行解释的,#define 语句是由预编译器进行处理的。

 

预处理器

 

需要记住得到要点

 

在变量声明的时候,如果没有确切的地址可以赋值,为指针变量赋一个 NULL 值是一个良好的编程习惯。赋为 NULL 值的指针被称为空指针。

局部变量要定义在方法前面

C语言中用char *string代替string,输出用string就行

注:多文件管理的时候,在头文件里面声明自定义函数(例a.h)

       在C语言文件里写下自定义函数的实现(b.h)

       在主函数中调用函数(要引入b.h)

 

猜你喜欢

转载自blog.csdn.net/qq_42049445/article/details/83063422
今日推荐