![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C 学习笔记
会有那么一天oc
人生不止编程,还有美妙的生活和美好的人。心中装着美好,随处是风景 !
展开
-
C语言中对于for语句,变量赋初值问题探讨
在C语言编程中很多时候会用到for语句循环,这就需要对for循环里面所涉及的变量赋值,有时赋值赋不对则会造成结果的错误。 下面就我在编程中所涉及的问题进行详解。 例如:打印所有不超过256的,其平方具有对称性质的数即回文数。程序如下:#include int main(){ int a[5], n, i, c, j ; for ( i =1;原创 2017-04-30 15:08:10 · 5278 阅读 · 0 评论 -
C语言基础之编码规范---排版
1、程序块要采用缩进风格编写,缩进的空格数为4个。 说明:对于由开发工具自动生成的代码可以有不一致。2、相对独立的程序块之间、变量说明之后必须加空行。3、较长的语句(>80字符)要分成多行书写,长表达式要在低优先级操作符处划分新行,操作符放在新行之首,划分出的新行要进行适当的缩进,使排版整齐,语句可读。4、循环、判断等语句中若有较长的表达式或语句,则要进行适应的划分,长表达式要在低优先级操作符处划原创 2017-06-20 20:56:40 · 1380 阅读 · 0 评论 -
bzero与memset
bzero: 原型:void bzero(void *s, int n); 功能:置字节字符串s的前n个字节为零且包括‘\0’。 说明:bzero无返回值,并且使用strings.h头文件,strings.h曾经是posix标准的一部分,但是在POSIX.1-2001标准里面,这些函数被标记为了遗留函数而不推荐用。 在POSIX.1-2008标准里已经没有这些函数了。推荐使用me原创 2017-08-11 19:37:57 · 848 阅读 · 0 评论 -
关于编译错误--提领指向不完全类型的指针
对于结构体来说虽然所有的变量默认都是公有的,但是,如果想访问里面的成员变量,必须有包含对其结构的定义,否则出现如上的错误,c编译器将无法识别结构里面的变量。一般想操作结构体里的成员变量,都是通过调用结构体中定义的函数接口,来取得结构体中的值,如果想直接访问,在头文件或源文件中加入结构体的定义就行了。原创 2017-08-12 20:01:47 · 1173 阅读 · 0 评论 -
struct和typedef struct
在C中定义一个结构体类型要用typedef: typedef struct Student { int a; }Stu; 声明变量的时候: Stu stu1;(如果没有typedef就必须用struct Student stu1;来声明) 这里的Stu实际上就是struct Student的别名。Stu==struct Student 另外原创 2017-11-07 17:06:25 · 245 阅读 · 0 评论 -
实现全排列的递归算法
#include <stdio.h>#define true 1#define false 0int num[10]; //c++直接定义为 bool visit[10] int visit[10]; void dfs(int index) { int i; if(index == 3) { int i; //存放在原创 2017-11-07 21:22:30 · 351 阅读 · 0 评论 -
实现组合的递归算法
#include <stdio.h>#define true 1#define false 0int num[10]; int visit[10]; void dfs_creat(int index) { int i; if(index == 3) //组合的数的个数 { for (i = 0; i < 3; i++) {原创 2017-11-07 21:46:54 · 871 阅读 · 0 评论 -
文件编程
#include <stdio.h>#include <string.h>int main(){ FILE *file = fopen("./text1", "a+"); if (NULL == file) { perror("fopen"); fclose(file); return 1; } char* s原创 2017-11-08 16:04:35 · 245 阅读 · 0 评论 -
C语言之enum的用法和注意事项(枚举类型)
一、一次定义多个常量。比如说我们的程序中处理问题时与星期几有关,可能要将星期一转换为数字1,星期二转换为数字2,一直到数字7,在不用enum关键字的情况下,可以使用define来定义,但是大家会觉得很麻烦,因为你要一个一个的定义,星期的还好说,只有7天,如果是月份呢,一年有12个月份,那就要写12个define,非常的不方面,如果利用enum的话就会非常的方便。#include<stdio....转载 2018-03-28 19:51:29 · 13320 阅读 · 2 评论 -
C 查漏补缺(一)
const 修饰变量判断方法 将类型去掉看const修饰谁,谁的值就是不能改变的const int *p;//去掉 int 为 const *p ,p所指向的空间里的值不变int * const p;//p 不变,p不能在指向其它地址const struct devices dev[5];//去掉类型struct devices 变成 const dev[5],dev[5]数组...原创 2018-06-30 16:24:39 · 320 阅读 · 0 评论 -
C 查漏补缺(二)
volatile(专一王子) 它修饰的变量表示该变量的值很容易由于外部因素发改变,强烈请求编译器要老老实实地在每次对变量进行访问时去内存里读取。typedef和#define typedef是为一个新类型起新名字,有类型检查#define只是简单的字符串替换,无类型检查前者在编译的时候处理,后者在预编译(预处理)的时候处理typedef char * p_str1;#def...原创 2018-06-30 16:25:25 · 353 阅读 · 0 评论 -
C语言中,输出一组数的排列和组合
N个元素中取出M个元素的所有排列#include <stdio.h>#define MAX 10void print();void Perm(int step);int used[MAX] = {0}; int result[MAX] = {0}; int M, N;int main(){ printf("Please input N M = "); scanf("%d %d原创 2017-05-22 15:00:55 · 9364 阅读 · 5 评论 -
printf 函数的输出条件
printf 函数输出的条件第一种情况:遇到某些转义字符,例如 ‘\n’ 等 会输出。第二种情况:遇到 scanf( )函数。第三种情况:调用fflush(stdout)。第四种情况:当缓冲区满的时候。原创 2017-06-04 20:30:19 · 1045 阅读 · 0 评论 -
分析C语言函数机制的优点和函数的使用
函数机制的优点:使程序变得更简短而清晰有利于程序维护可以提高程序开发的效率提高了代码的重用性常用内置函数(库函数)的使用方法当遇到函数原型为return_type function_name(arg1_type arg1, arg2_type arg2)时就可以如下使用return_type r_value;arg1_type a1_value;arg2_type a2_value;r_v转载 2017-05-01 20:36:15 · 4489 阅读 · 0 评论 -
c语言中,关于随机函数的使用详解
c语言中,如何产生X ~ Y范围内的随机数c语言中大家都知道的随机函数为random,但是random函数并不是ANSI C标准,所以random函数不能在gcc或者vc等编译器下编译通过。c语言中,rand()函数可以产生随机数,但其产生的随机数是固定的。原创 2017-05-23 10:12:39 · 2528 阅读 · 0 评论 -
用 c 语言实现自动发牌
一副扑克有52张牌,打牌时将牌发给4个人,现设计一个程序完成自动发牌工作。要求黑桃用 S 表示;红桃用 H 表示;方块用 D 表示;梅花用 C 表示程序如下#include <stdio.h>#include <stdlib.h>#include <time.h>void p(int *, char *);int comp(const void *j, const void *i);int main()原创 2017-05-23 20:27:03 · 5136 阅读 · 0 评论 -
1 ~ 9 每个数只能用一次 组成各类运算公式
#include <stdio.h>int a[9] = {0};int fun();int main(){ int m, n, x, y, count = 0; //第一类 OOO + OOO = OOO 即三位数加三位数等于三位数,且1~9只能出现一次。 printf("OOO + OOO = OOO :\n"); for (m = 123; m <= 86原创 2017-05-12 18:42:48 · 4471 阅读 · 0 评论 -
30秒看懂数组中的地址问题
一、 对数组地址的理解首先需要明确以下几个概念:以一维数组 array[3] = {0, 1, 2} 为例。1、数组的首元素地址 &array[0]2、数组的地址 &array3、数组名 array 代表数组首元素的地址 即 array 与 &array[0] 等价4、步长的概念 例如:执行 &array + 1,对于这个数组来说原创 2017-05-07 21:58:17 · 4820 阅读 · 0 评论 -
c语言中,关于延迟函数的理解
延迟函数 sleep()在Linux下c语言中的使用原创 2017-05-26 10:21:56 · 3534 阅读 · 0 评论 -
Linux操作以及c编程规范 、附带个问题
Linux运行c文件进入死循环时,按ctrl+c就可以强制退出。原创 2017-04-26 15:07:30 · 352 阅读 · 0 评论 -
C语言总结之异或运算的一些特性及巧妙应用
1.一个数和自己做异或的结果是0。如果需要一个常数0,x86平台的编译器可能会生成这样的指令: xorl %eax, %eax。不管eax寄存器里的值原来是多少,做异或运算都能得到0,这条指令比同样效果的 movl $0, %eax指令快,直接对寄存器做位运算比生成一个立即数再传送到寄存器要快一些。2.从异或的真值表中可以看出,和0做异或保持原值不变,和1做异或得到原值的相反值。可以利用这个特性转载 2017-05-28 21:54:51 · 945 阅读 · 0 评论 -
分享给大家一个比较装逼的小代码
大家写完一个比较大的程序,然后让它运行时,我们都知道 .c文件在执行时是很快的,那么就不能够体现我们所写的程序是很大很复杂的,那么如何能提升这个文件的逼格呢?这时就需要借用延迟函数以及几条用来装逼的英文。 请看:int main(){ printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"); printf("*原创 2017-05-29 21:56:06 · 271177 阅读 · 27 评论 -
通过调用一个求解阶乘的函数,求解一个三位数,该三位数等于其每位数字的阶乘之和。
#include int fun();int main(){ int i, a, b, c; for ( i = 100; i { a = i / 100; b = i / 10 % 10 ; c = i % 10; // printf("%d%d%d", fun(a), fun(原创 2017-04-27 20:29:39 · 3360 阅读 · 0 评论 -
C 查漏补缺(三)
main函数传参数#include <stdio.h>int main(int argc, char **argv){ int i; printf("program name = %s\n", argv[0]); for (i = 1; argv[i] != NULL; i++) { printf("argv[%d] =...原创 2018-06-30 16:26:07 · 403 阅读 · 0 评论