C语言程序设计
哥们并肩走过
计算机编程爱好者
展开
-
C语言 *p++、 *++p、++*p、(*p)++的区别
示例代码如下:#include <stdio.h>void main(){ int a[9]={1,3,5,7,9},*p,i; p = a; // p++; // printf("%d\n",*p); // i = *p++; // 等价于 i=*p; p++; // i = *++p; // 等价于 p++; i=*p; // i = ++*p; // 等价于i=*p+1;*p指向的存储单元值+1 i = (*p)++; // 等价于 i=*p; *p原创 2020-12-04 17:42:55 · 1292 阅读 · 0 评论 -
C语言 typedef重命名
第一个例子,示例代码如下:#include <stdio.h>void main(){ typedef int Inter; Inter a; // 等价于 int a; printf("%d",sizeof(Inter));}第二个例子,示例代码如下:#include <stdio.h>void main(){ char *author; // 定义指向字符数组的指针变量,方便数组赋值 typedef struct{ int age;原创 2020-11-24 10:35:49 · 911 阅读 · 0 评论 -
C语言 枚举数据类型
1、声明枚举类型并定义枚举变量#include <stdio.h>void main(){ // 声明枚举类型并定义枚举变量 enum {yellow,blue,black} color; color = blue; // color 只能是 yellow,blue,black 三种颜色中其中某一种 printf("%d\n",color); // 1}...原创 2020-11-21 08:42:59 · 249 阅读 · 0 评论 -
C语言 共用体数据类型
1、声明共用体并定义共用体变量#include <stdio.h>void main(){ // 声明共用体并定义共用体变量 union Data{ int age; char sex; }p1; // 共用体变量引用同一块内存地址,p1.age和p1.sex内存起始地址一样 p1.age = 18; printf("%d\n",p1.age); p1.sex = 'M'; printf("%c\n",p1.sex); printf("%d\n",p1.age);原创 2020-11-21 08:34:30 · 446 阅读 · 0 评论 -
C语言 结构体数据类型
1、定义结构体变量#include <stdio.h>void main(){ // 声明一个结构体数据类型 struct Student{ int num; char name[20]; char sex; int age; float score; char addr[30]; }; // 定义一个结构体变量,开辟一块内存空间 struct Student student1,student2;}2、引用结构体变量#include <std原创 2020-11-21 08:11:26 · 985 阅读 · 0 评论 -
C语言 将数组逆序输出(指针)
示例代码如下:#include <stdio.h>void main(){ int nums[]={0,1,2,3,4,5,6,7,8,9}; int *i,*j,*mid,a,temp; i = nums; // 数组元素的第一个值的地址 j = nums + 9; // 数组元素的最后一个值的地址 mid = nums + (10-1)/2; // 数组元素的中间值的地址 // 实现两个数的交换 for(;i<=mid;i++,j--){ t原创 2020-11-17 16:52:13 · 9548 阅读 · 1 评论 -
C语言 遍历数组的几种方法总结
1、下标法#include <stdio.h>void main(){ int nums[]={0,1,2,3,4,5,6,7,8,9}; int i; for(i=0;i<=9;i++){ printf("%d\n",nums[i]); } }2、指针遍历取值示例代码如下:#include <stdio.h>void main(){ int nums[]={0,1,2,3,4,5,6,7,8,9}; int i; for(i原创 2020-11-17 16:10:27 · 10914 阅读 · 0 评论 -
C语言 指针变量做函数参数
请看下面的代码#include <stdio.h>void main(){ void swap(int *p1, int *p2); // 函数声明 int *pointer1,*pointer2; // 定义两个指针变量 int a=5,b=10; // 定义两个变量 pointer1 = &a; // 把变量a的地址赋值给变量pointer1 pointer2 = &b; // 把变量b的地址赋值给变量pointer2 swap(pointer1,p原创 2020-11-17 15:31:53 · 144 阅读 · 0 评论 -
C语言 指针
1、什么是指针指针就是一个地址如:int a = 12;假如变量a的内存地址为2000,那么就称2000为变量a的指针,2000指向了变量a。2、什么是指针变量存放地址的变量就是指针变量,它就是一个变量。只不过存放的是地址。示例代码如下:#include <stdio.h>void main(){ int *pointer; // 定义一个指针变量 int a; // 定义一个变量a a = 10; // 变量a 赋值为10; pointer = &a; /原创 2020-11-17 11:45:16 · 111 阅读 · 0 评论 -
C语言 函数
1、函数的定义和调用示例代码如下:#include <stdio.h>void main(){ int twoSum(int,int); // 函数调用声明 int c; c = twoSum(1,2); // 调用函数 printf("%d\n",c); // 打印函数返回值 }int twoSum(int a,int b){ return a + b; }2、局部变量和全局变量局部变量:在函数内部定义的变量,只在函数内部有效。全局变量:在函数外部原创 2020-11-17 10:46:25 · 189 阅读 · 0 评论 -
C语言 统计一串字符中单词的个数
示例代码如下:void main(){ char str[] = {"I LOVE YOU"}; int i=0,num=0,mark=0; char c; while((c = str[i]) != '\0'){ if(c == ' '){ mark = 0; // 打上一个标记 }else{ if(mark == 0){ num++; // 单词个数加1 mark = 1; } } i++; // 遍历数组,往后移动 } p原创 2020-11-17 10:21:55 · 713 阅读 · 0 评论 -
C语言 字符串处理函数
1、puts ,字符串输出示例代码如下:#include <stdio.h>void main(){ char str[] = "China"; puts(str);}puts函数在输出的时候会把’\0’转换为’\n’,也就是说当字符串输出结束后换行2、gets,字符串输入示例代码如下:#include <stdio.h>void main(){ char str[5]; gets(str); // 获取5个字符 puts(str); // 输原创 2020-11-17 10:00:08 · 530 阅读 · 0 评论 -
C语言 运行多个文件
twoSum.c源文件int twoSum(int a,int b){ return a + b;}主运行文件#include <stdio.h>#include "twoSum.c" // C源程序文件void main(){ int tot; tot = twoSum(1,2); printf("%d",tot);}原创 2020-11-16 23:37:05 · 782 阅读 · 0 评论 -
C语言,使用%s格式化输出字符串的问题
运行环境:VC6.0我们先来看下面的代码:#include <stdio.h>void main(){ char a[10]="I am a boy"; printf("%s\n",a); // I am a boy烫p}运行这段代码,使用printf语句打印的时候,会发现有一堆奇怪的字符。解决方法,手动添加\0,示例代码如下:#include <stdio.h>void main(){ char a[11]="I am a boy\0";原创 2020-11-14 17:31:26 · 5215 阅读 · 1 评论 -
C语言 字符串
C语言中没有字符串类型,字符串是存放在字符型数组中的字符串的定义,示例代码如下:#include <stdio.h>void main(){ char a[10]={'I',' ','a','m',' ','a',' ','b','o','y'}; printf("%c",a[0]);}第二种定义方式,示例代码如下:#include <stdio.h>void main(){ char a[10]="I am a boy"; printf("%c原创 2020-11-14 16:28:00 · 145 阅读 · 0 评论 -
C语言经典题目(三)
题目示例代码如下:#include <stdio.h>void main(){ int a[2][4]={{1,2,3,44},{5,6,7,8}},max,i,j; max = a[0][0]; //扫描二维数组a for(i=0;i<=1;i++){ for(j=0;j<=3;j++){ if(max < a[i][j]){ max = a[i][j]; } } } printf("%d",max);}原创 2020-11-14 08:50:19 · 128 阅读 · 0 评论 -
C语言经典题目(二)
数组中的行变列示例代码如下:#include <stdio.h>void main(){ int a[2][3]={{1,2,3},{4,5,6}},b[3][2],i,j; for(i=0;i<=1;i++){ for(j=0;j<=3;j++){ b[j][i] = a[i][j]; // 外层循环控制行,内层循环控制列 } } //扫描二维数组b for(i=0;i<=2;i++){ for(j=0;j<原创 2020-11-13 17:46:33 · 107 阅读 · 0 评论 -
C语言经典题目(一)
1、输出数列示例代码如下:#include <stdio.h>void main(){ int a[20]={1,1},i,j; // 给数组元素赋值 for(i=2;i<=19;i++){ a[i] = a[i-1] + a[i-2]; } // 遍历数组 for(j=0;j<=19;j++){ printf("%d\t",a[j]); /************* if(j%4 == 0){ printf("\n原创 2020-11-13 17:30:01 · 164 阅读 · 0 评论 -
C语言 逆序输出数组元素
示例代码如下:#include <stdio.h>void main(){ int a[9]={1,2,3,4,5,6,7,8,9},i; for(i=8;i>=0;i--){ printf("%d\n",a[i]); }}原创 2020-11-13 16:58:08 · 5617 阅读 · 0 评论 -
C语言 数组
1、一维数组的定义定义一个存放10个元素的数组示例代码如下:#include <stdio.h>void main(){ int a[10],i; for(i=1;i<=10;i++){ a[i] = i; // [1,2,3,4,5,6,7,8,9,10] } printf("%d",a[9]);}第二种定义方式,示例代码如下:#include <stdio.h>void main(){ int a[10]={1,2,3,4,5,原创 2020-11-13 16:45:47 · 196 阅读 · 0 评论 -
C语言 int类型赋值给short类型
我们来思考一下,下面这段代码的运行结果#include <stdio.h>void main(){ int a=32767; short b; b = a + 1; printf("%d\n",b); // -32768}测试环境VC6.0解释整型int占4个字节,数字32767在内存中的存储情况如下:加 1 操作后,变成00000000 00000000 10000000 00000000-32768在内存中的存储形式为 10000000 0000原创 2020-11-11 18:11:39 · 3930 阅读 · 0 评论 -
浮点数在内存中的存储形式
1、浮点数所占内存大小单精度数据类型125.25在内存中中是如何存储的呢?分为两部分 看 125 和 0.5125 的二进制表示为 0111 11010.25的二进制表示为 01转换过程如下:0.25 * 2 = 0.5 … 00.5 * 2 = 1所以125.25的二进制表示为1111101. 01用科学计数法表示为 1.11110101 * 2^6符号位正数为0 ,负数为1第一位表示符号为 0指数位6 + 127 = 133 (单精度+127,双精度+1023)133转为原创 2020-11-10 17:59:27 · 243 阅读 · 0 评论 -
C语言 输入三个数,求三个数中的最大值
示例代码如下:输入 1 2 3输出 3#include<stdio.h>int main(){ int a, b, c,k,j; int max(int x, int y); scanf("%d %d %d",&a, &b, &c); k = max(a, b); j = max(k, c); printf("The max number is %d\n", j);}int max(int x, int y){原创 2020-11-10 16:47:33 · 7700 阅读 · 0 评论 -
C语言版本 编程能力训练(一)
1、输出以下图形*********************示例代码如下:#include <stdio.h>void main(){ int i,j; for(j=1;j<=6;j++){ for(i=1;i<=j;i++){ printf("*"); } printf("\n"); } }原创 2020-11-02 18:51:29 · 108 阅读 · 0 评论 -
C语言 循环结构程序设计
1、goto循环语句求 1 + 2 + 3 + … + 100示例代码如下:#include <stdio.h>void main(){ int i=1,sum=0; loop: if(i <= 100){ sum += i; i++; goto loop; } printf("sum=%d",sum);}2、while版本循环示例代码如下:#include <stdio.h>void main(){ int i=0,s原创 2020-11-02 17:46:18 · 611 阅读 · 0 评论 -
C语言 分支结构程序设计
1、逻辑运算符与(&&) 或(||) 非(!)与运算符,只有两边同时为真的情况下,返回true或运算符,只要一边为真的情况下,返回true非运算符,取反,如果表达式为真,取反后则为假2、分支语句二分支结构,示例代码如下:#include <stdio.h>void main(){ int a,b; scanf("%d %d",&a,&b); if(a > b){ printf("最大值是%d",a); }else{原创 2020-11-02 15:50:13 · 840 阅读 · 0 评论 -
C语言 顺序程序设计
1、变量赋初值#include <stdio.h>void main(){ int a=5,b=5,c=5; printf("%d,%d,%d",a,b,c);}2、输出函数putchar输出单个字符示例代码如下:#include <stdio.h>void main(){ putchar('A'); }printf格式化输出函数示例代码如下:#include <stdio.h>void main(){ int a;原创 2020-11-02 12:46:38 · 555 阅读 · 0 评论 -
C语言 1/3 * 3 的结果是?
测试环境:VC6.01、求1/3 * 3的值示例代码如下:#include <stdio.h>void main(){ printf("%d\n",1/3*3);}运算结果是 0,为什么是0呢?1/3*3 表达式先计算 1/3,两边都是整型,其结果也是整型,所以 1/3结果为0,接着计算0*3,两边都是整型,其结果为也为整型,结果为0,最后以%d格式化输出,所以输出结果为02、求1.0/3 * 3的值示例代码如下:#include <stdio.h>原创 2020-10-26 10:39:31 · 7874 阅读 · 4 评论 -
C语言程序设计基础(二)
1、常量在程序执行过程中,其值不发生改变的量称为常量常量的定义,示例代码如下:#define PRICE 30;#include <stdio.h>#define PRICE 30;void main(){ int num,tot; num = 10; tot = num * PRICE; printf("总价格为%d\n",tot);}常量的标识符(PRICE)用一般用大写字母表示2、变量在程序执行过程中,其值可变的量称为变量变量的定义,示例代码如下:原创 2020-10-25 16:43:15 · 311 阅读 · 0 评论 -
C语言程序设计基础(一)
1、开发环境Visual C++ 6.0软件下载:https://daxue-ziliaoku.lanzous.com/iFRnvhptzri2、第一个C语言程序2.1 新建一个项目(用于存放C语言源代码)点击文件,新建,选择工程2.2 新建一个C语言源文件2.3 第一次C语言代码编写的尝试#include <stdio.h>void main(){ printf("hello word\n");}2.4 编译代码(检测语法有没有错误)后运行代码3、代码解释#原创 2020-10-25 10:03:46 · 473 阅读 · 0 评论