C语言学习(基础+提高)
文章平均质量分 52
还好吧(-.-)
各自努力
展开
-
进阶typedef用法
1、在编程中使用typedef目的一般有两个一个是给变量起一个容易记住且有意义明确的别名另一个是简化一些比较复杂的类型声明int (*ptr)[3]; 数组指针(先是指针,再是数组)typedef int (*PTR_TO_ARRAY)[3];栗子1:#include<stdio.h>#include<stdlib.h>typedef int (*PTR_TO_ARRAY)[3];int main(){ int array[3] = {1原创 2022-01-13 10:16:28 · 303 阅读 · 0 评论 -
动态内存管理
更灵活的内存管理方式malloc:申请动态内存空间free:释放动态内存空间calloc:申请并初始化一系列动态内存空间realloc:重新分配内存空间malloc:void *malloc(size_t,size);malloc:向系统申请分配size个字节的内存空间,并返回一个指向该内存空间的指针若函数调用成功,返回一个指向内存空间的指针,由于返回类型是void指针,所以他可以被转换为任意类型的指针;若函数调用失败,返回值是NULL。另外,若size设置为0,返回值也可以是N原创 2022-01-10 19:33:22 · 374 阅读 · 0 评论 -
指针函数和函数指针
首先记住一句话:指针函数是函数,函数指针是指针指针函数:char *getword(char);返回值是指针的函数先举个栗子(栗子1):#include<stdio.h>char * getword(char);char * getword(char n)/*getword是函数名,char *作为一个整体是函数的返回值,char是数据类型*/{ switch(n) { case'A':return "apple"; /*这里返回指针,主要是因原创 2021-11-27 23:07:40 · 541 阅读 · 0 评论 -
参数和返回值(适合初学者)
函数回顾类型名 函数名(参数列表){ 函数体}类型名实际作用就是指定函数的返回值类型,函数在主函数中的作用主要体现在其有返回值。默认返回0表示函数代码无错误,若函数确实不需要返回值,则可用void代替类型名,旨在告诉计算机这个函数不用返回值。形参和实参这两个参数呢,就相当于去占座,把包放在座位上,告诉大家这里会有人,但是是谁大家是不知道的。举个栗子:#include<stdio.h>int Find_Max(int x,int y)/...原创 2021-11-27 21:59:59 · 911 阅读 · 0 评论 -
常量指针(很简单)
1、指针可以修改为指向不同的常量2、指针可以修改为指向不同的变量3、可以通过解引用来读取指针指向的数据4、不可以通过解引用来改变指针指向的数据#include<stdio.h>int main(){ int num=1024; int* p = # printf("%p %d\n",p,*p); int temp = 1042; p = &temp; printf("%d\n",*p);}/*结果原创 2021-11-23 15:57:13 · 762 阅读 · 0 评论 -
指针及指针相关问题(下)
五、指针和二维数组定义二维数组array[4][5];#include<stdio.h>int main(){ int array[4][5] = {0}; int i,j,k = 0; for(;i<4;i++) { for(;j<5;j++) { array[i][i] = k++; } } printf("%d ",*(*(array+1)+原创 2021-11-21 16:41:41 · 228 阅读 · 0 评论 -
指针及指针相关问题(上)(关于我自己的理解,如有不妥还望指正)
指针1、int a 表示整数a2、int *a 指向整型的地址,名称叫a(一级指针,表示a所指向的地址里面存放的是一个int类型的值)3、int* a 整形的指针,名称叫a4、int **a 二级指针,表示a所指向的地址里面存放的是一个指向int类型的指针2和3在用法上没有区别,理解上有区别:前者表示a地址指向的类型是整型,后者表示a是整个整形的指针,用起来的效果是一样的(学习时无需多虑)通俗来讲...原创 2021-11-07 20:02:45 · 118 阅读 · 0 评论