随笔分类 -  C语言

摘要:#include<stdio.h> static int add(int a,int b); static int sub(int a,int b); static int mul(int a,int b); static int div(int a,int b); static int abs(i 阅读全文
posted @ 2021-12-22 15:07 hiligei 阅读(64) 评论(0) 推荐(0)
摘要:#ifndef __DEFINE__H__ #define __DEFINE__H__ #define vector3(type) \ typedef struct vector3_##type { \ type a; \ type b; \ type c; \ }vector3_##type; / 阅读全文
posted @ 2020-03-18 20:35 hiligei 阅读(855) 评论(0) 推荐(0)
摘要:#define offsetof(type,member) ((size_t) &((type *)0)->member) 该宏定义含义为:在不生成结构体实例的情况下计算结构体成员的偏移量。 一:结构体变量的某成员的地址等于该结构体变量的基址加上结构体成员变量在结构体中的偏移量 二:#define 阅读全文
posted @ 2020-03-16 12:09 hiligei 阅读(1240) 评论(0) 推荐(0)
摘要:一:变量的赋值和变量的初始化问题 变量赋值和变量初始化不是一回事! 变量赋值发生在运行期,其写法遵循赋值语法规定。 变量初始化发生在编译期或运行期,其写法遵循初始化列表语法规定。 局部变量是在函数内部所以它既可以初始化也可以赋值。 #include<stdio.h> #include<string. 阅读全文
posted @ 2020-03-13 14:39 hiligei 阅读(851) 评论(0) 推荐(0)
摘要:1.字符串指针变量赋值 #include<stdio.h> int main(){ char *b="azzzxxxddd"; b="azzzxxxdddccccc"; printf("%s", b); system("pause"); return 0; } 结果:没有报错,b赋值成功,正常输出。 阅读全文
posted @ 2020-03-13 13:56 hiligei 阅读(651) 评论(0) 推荐(1)
摘要:一、可变参数函数表示:type fun(int num,...) 其中type表示函数返回值类型,num表示参数个数,而"..."表示所有的参数。 例:char fun(int num,...); 二、va_list,va_start(),va_arg(),va_end()意义及原函数表示。 1、v 阅读全文
posted @ 2020-03-08 17:57 hiligei 阅读(709) 评论(0) 推荐(0)
摘要:#include<stdio.h> typedef char arr[2][5]; typedef char *name[5]; // 指针数组 typedef char (*lan)[5]; // 数组指针 int main() { arr age; name named; lan land; c 阅读全文
posted @ 2020-03-08 15:20 hiligei 阅读(841) 评论(0) 推荐(0)
摘要:函数的入口地址(首地址):函数名 一、指针函数:指针函数实质是一个函数,其返回值是一个指针,是一个地址。 定义:type *function(type A,type B); 例:int *fun(int a,float c); #include "stdio.h" static int *fun(i 阅读全文
posted @ 2020-03-06 21:28 hiligei 阅读(439) 评论(0) 推荐(0)
摘要:#include <stdio.h> #define COLS 10 #define ROWS 6 char erwei[6][10]={{1,2,3,4,5,6,7,8,9,10}, {10,9,8,7,6,5,4,3,2,1}, {1,2,3,4,5,6,7,8,9,10}, {10,9,8,7 阅读全文
posted @ 2020-01-12 16:42 hiligei 阅读(362) 评论(0) 推荐(0)
摘要:#include<stdio.h> #define Operations(x) operation_ ## x // ## 是黏贴字符串 int Operations(sum)(int x,int y){ // operation_sum(int x,int y) return x+y; } int 阅读全文
posted @ 2019-09-17 19:30 hiligei 阅读(1373) 评论(0) 推荐(0)
摘要:int *const p:常量指针,其本质是一个常量(用指针修饰),这个常量的内容是一个指针,不可以修改p指向的地址,但是可以修改*p的值。定义的时候要赋初值。(数组名也是一个指针常量) int const *p(const int *p):指针常量,其本质是一个指针(用const修饰)。说明它指向 阅读全文
posted @ 2019-08-28 11:40 hiligei 阅读(708) 评论(0) 推荐(0)
摘要:程序由指令和数据组成。 c语言中内存分为5个区,由高地址到低地址分别为栈、堆、全局区(静态区)、常量区和代码区。 栈区(stack):存放函数局部变量,函数的参数值和返回值,由系统自动管理。 堆区(heap):由malloc函数分配内存再由free释放内存。 全局区(静态区):存放全局变量和静态变量 阅读全文
posted @ 2019-08-16 16:32 hiligei 阅读(262) 评论(0) 推荐(0)
摘要:int main(){ const char a[]="hello world"; char *aa=(char *)a; printf("\nthe a address is 0x%p,%s",a,a); aa[3]='a'; printf("\nthe a address is 0x%p,%s" 阅读全文
posted @ 2019-08-16 14:54 hiligei 阅读(578) 评论(0) 推荐(0)
摘要:1.除了数组外,其他都有副本机制(包括结构体数组) 2.结构体作为参数具有副本机制,结构体返回值也有副本机制 。 3.函数的参数和返回值都有他的副本机制。 #include<stdio.h> int a=10,b=20; static int sum(int aa,int bb){ printf(" 阅读全文
posted @ 2019-08-16 14:19 hiligei 阅读(627) 评论(0) 推荐(0)