
c语言
up1292
从事软件测试十多年,一直浑浑噩噩的,总想提高技术,学习的东西很多很杂,但都不深入。感叹自己水平有限能力一般,勉强在这行混饭吃。记录下自己的学习过程,主要是给自己看的,所以写的很乱,如果能给阅读者一丝丝帮助,那也是您自己的努力。
展开
-
C语言学习1:char的使用
# include <stdio.h>int main(void){ char ch = 'A'; //第4行 OK 等价 char ch; ch = 'A';// char ch = "AB"; //error 因为"AB"是字符串,我们不能把字符串赋给单个字符变量// char ch = "A"; //error// char ch = 'AB'; //'AB'...原创 2019-10-02 16:49:47 · 4897 阅读 · 0 评论 -
C语言学习15:指针3——一维数组名的含义
/* 一维数组名是个指针常量 它存放的是一维数组第一个元素的地址*/# include <stdio.h>int main(void){ int a[5]; int b[5]; //a = b; //error a是常量 printf("%#X\n", &a[0]); printf("%#X\n", a); return 0;}...原创 2019-10-08 10:42:31 · 200 阅读 · 0 评论 -
C语言学习16:指针4——确定一个一维数组需要2个参数
# include <stdio.h>//f函数可以输出任何一个一维数组的内容void f(int * pArr, int len){ for (int i=0; i<len; i++) printf("%d ", *(pArr+i)); //*(pArr+i)等价于pArr[i]等价于b[i]等价于*(b+i) (b为调用的数组名) printf("\n");...原创 2019-10-08 11:11:04 · 325 阅读 · 0 评论 -
C语言学习17:指针5—一个指针变量到底占多少个字节
/* sizeof():查看类型所占的字节数 一个指针变量,无论它指向的变量占几个字节 该指针变量本身只占四个字节 一个变量的地址使用该变量首字节的地址来表示*/# include <stdio.h>int main(void){ char ch = 'A'; int i = 99; double x = 66.6; char * p = &ch...原创 2019-10-08 18:01:13 · 677 阅读 · 0 评论 -
C语言学习18:指针6—malloc的用法
/* malloc 是 memory(内存) allocate(分配)的缩写*/# include <stdio.h># include <malloc.h> //不能省int main(void){ int i = 5; //分配了4个字节 静态分配 11 行 int * p = (int *)malloc(4); //12行 /* ...原创 2019-10-09 16:37:59 · 300 阅读 · 0 评论 -
C语言学习19:指针7—传统数组的缺陷
1、数组长度必须事先制定,且只能是常整数,不能是变量例子:int a[5]; //okint len=5; int a[len]; //error2、传统形式定义的数组,该数组的内存无法手动释放在一个函数运行期间,系统为该函数中数组所分配的空间会一直存在,直到该函数运行完毕时,数组的空间才会被系统释放3、数组的长度一旦定义,其长度就不能再更改数组的长度不能再函数运...原创 2019-10-09 16:56:57 · 220 阅读 · 0 评论 -
C语言学习20:指针8—动态一维数组示例
# include <stdio.h># include <malloc.h>int main(void){ int a[5]; //如果int占4个字节的话,则本数组总共包含有20个字节,每四个字节被当做了一个int变量来使用 int len; int * pArr; int i; //动态的构造一维数组 printf("请输入你要存放的元素的个数...原创 2019-10-09 18:34:37 · 285 阅读 · 0 评论 -
C语言学习21:指针9—多级指针
# include <stdio.h>int main(void){ int i = 10; int * p = &i; //p只能存放int类型变量的地址 int ** q = &p; //q是int **类型, 所谓int **类型就是指q只能存放int *类型变量的地址, int *** r = &q; //r是int ***类型...原创 2019-10-09 19:13:58 · 107 阅读 · 0 评论 -
C语言学习22:指针10—动态内存跨函数使用示例
# include <stdio.h># include <malloc.h>void f(int ** q){ *q = (int *)malloc(sizeof(int)); //sizeof(数据类型) 返回值是该数据类型所占的字节数 //等价于 p = (int *)malloc(sizeof(int)); //q = 5; //error /...原创 2019-10-09 20:28:27 · 121 阅读 · 0 评论 -
C语言学习23:定义结构体
# include <stdio.h>struct Student{ int age; float score; char sex;};int main(void){ struct Student st = {80, 66.6, 'F'}; /* int age; float score; char sex; int age2; float score...原创 2019-10-10 20:17:48 · 250 阅读 · 0 评论 -
C语言学习24:结构体赋值和初始化
定义的同时可以整体赋初值如果定义之后,则只能单个的赋初值# include <stdio.h>struct Student{ int age; float score; char sex;};int main(void){ struct Student st = {80, 66.6, 'F'}; //初始化 定义的同时赋初值 struct Stude...原创 2019-10-10 21:00:24 · 449 阅读 · 1 评论 -
C语言学习14:指针2——两数互换
# include <stdio.h>void huhuan_1(int, int);void huhuan_2(int *, int *);void huhuan_3(int *, int *);int main(void){ int a = 3; int b = 5; printf("before: a = %d, b = %d\n", a, b); /...原创 2019-10-07 20:21:05 · 286 阅读 · 0 评论 -
C语言学习13:指针1
# include <stdio.h>int main(void){ int *p; //p是变量的名字,int *表示p变量存放的是int类型变量的地址 int i = 3; int j; p = &i; /* 1. p保存了i的地址,因此p指向i 2. p不是i,i也不是p,修改p的值不影响i的值,修改i的值也不影响p的值 3. 如果...原创 2019-10-07 09:21:49 · 109 阅读 · 0 评论 -
C语言学习12:函数的声明
# include <stdio.h>void f(void); //函数声明, 分号不能丢掉int main(void){ f(); return 0;}void f(void){ printf("哈哈!\n");}函数声明前置:1、告诉编译器即将可能出现的若干个字母代表的是一个函数2、告诉编译器即将可能出现的若干个字母所代表的函数的形参和返...原创 2019-10-05 10:20:20 · 652 阅读 · 0 评论 -
C语言学习2:各种进制的写法
# include <stdio.h>int main(void){ int x = 100; //十进制 int x = 0100; //八进制 int x = 0x100; //十六进制 printf("%d\n", x); return 0;}原创 2019-10-02 17:41:39 · 1843 阅读 · 0 评论 -
C语言学习3:printf中%X及其相关的用法
/* 2019年10月3日08:29:48 目的: 测试%x %X %#x %#X的用法*/# include <stdio.h>int main(void){ int x = 47; printf("%x\n", x); //输出结果是:2f printf("%X\n", x); //输出结果是:2F printf("%#X\n", x); //输出...原创 2019-10-03 08:41:31 · 7526 阅读 · 0 评论 -
C语言学习4:scanf用法1
# include <stdio.h>int main(void){ int i; char ch; scanf("%d", &i); printf("i = %d\n", i); scanf("%c", &ch); printf("ch = %c\n", ch); return 0;}/* 输入99k 输出结果:i = 99 ...原创 2019-10-03 09:02:03 · 152 阅读 · 0 评论 -
C语言学习5:scanf用法2
# include <stdio.h> int main(void){ int i, j; // scanf("%d %d", &i, &j); //scanf中不要输入非输入控制符,尤其不要写\n,最多输空格 printf("请输入i:"); scanf("%d", &i); printf("请输入j:"); scanf("%d", &...原创 2019-10-03 09:43:21 · 188 阅读 · 0 评论 -
C语言学习6:scanf用法3
# include <stdio.h> int main(void){ int i; char ch; scanf("%d", &i); printf("i = %d\n", i); //对用户的非法输入进行处理 while ((ch = getchar()) != '\n') continue; int j; scanf("%d", &a...原创 2019-10-03 10:16:05 · 131 阅读 · 0 评论 -
C语言学习7:for循环
/*求1到100之间的能被3整除的数之和*/# include <stdio.h>int main(void){ int sum = 0; int i; for(i=1; i<=100; i++) { if(i%3 == 0) //判断除3取余为0,则执行加法 { sum = sum +i; } } printf("sum = ...原创 2019-10-04 09:24:51 · 288 阅读 · 0 评论 -
C语言学习8:数组初始化
完全初始化 int a[5] = {1,2,3,4,5};不完全初始化,未被初始化的元素自动为零 int a[5] = {1,2,3};不初始化,所有元素是垃圾值 int a[5];清零 int a[5] = {0};错误写法: int a[5]; a[5] = {1,2,3,4,5}; //错误 只有在定...原创 2019-10-05 08:33:12 · 359 阅读 · 0 评论 -
C语言学习9:二维数组
int a[3][4];总共是12个元素,可以当做3行4列看待,这12个元素的名字一次是 a[0][0] a[0][1] a[0][2] a[0][3] a[1][0] a[1][1] a[1][2] a[1][3] a[2][0] a[2][1] a[2][2] a[2][3] a[i][j] 表示第i+1行第j+1列的元素初始化 in...原创 2019-10-05 08:53:58 · 231 阅读 · 0 评论 -
C语言学习10:函数的类型
# include <stdio.h>int f(){ return 10.5; //因为函数的返回值类型是int,所以最终f返回的是10而不是10.5}int main(void){ double x = 6.6; x = f(); printf("%lf\n", x); return 0;}...原创 2019-10-05 10:01:09 · 693 阅读 · 0 评论 -
C语言学习11:return表达式的含义,以及和break的区别
1、终止被调函数,向主调函数返回表达式的值2、如果表达式为空,则只终止函数,不向被调函数返回任何值3、break是永安里终止循环和switch的,return是用来终止函数的...原创 2019-10-05 10:08:04 · 469 阅读 · 0 评论 -
C语言学习25:如何取出结构体变量中的每一个成员
# include <stdio.h>struct Student{ int age; float score; char sex;};int main(void){ struct Student st = {80, 66.6F, 'F'}; //初始化 定义的同时赋初值 struct Student * pst = &st; //&st不...原创 2019-10-10 22:09:30 · 2766 阅读 · 0 评论