![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C
文章平均质量分 79
C
橘子烤菠萝
这个作者很懒,什么都没留下…
展开
-
C语言一维数组的定义及初始化
文章目录1. 定义一维数组2. 一维数组初始化1. 定义一维数组一般形式: 类型说明符 数组名[常量表达式]eg: int a[10];下标从0开始,这10个元素是从a[0]~a[9]类型说明符:指定数组中元素的类型 ,a中所有元素都是int类型的数组名命名规则和变量名相同,遵循标识符命名规则(字母数字下划线组成,数字不开头)常量表达式可以包含常量和符号常量,eg:int a[3+5];2. 一维数组初始化定义数组时,对元素赋初值* 对全部元素赋值 eg : in原创 2020-10-14 13:39:11 · 15697 阅读 · 6 评论 -
使用字符串指针变量和字符数组的比较
赋值方式可以对字符指针变量赋值,但不能对数组名赋值。初始化字符指针变量可以先定义,再初始化;而数组在定义后,只能对其元素一个一个赋值,要想整体赋值,必须在定义数组时就初始化。char * a="qwert"; 等价于 char * a; a="qwert";而char a[]="qqqqq"; 等价于 char a[5]; for(int i=0;i<5;i++){ a[i]='q'; }指针变量的值可以改变,而字符数组名代表一个固定的值(数组首元素地址)字符数组中.原创 2020-10-28 18:40:21 · 733 阅读 · 1 评论 -
C语言中变量的作用域和生存期
几个基本概念静态存储区: 程序运行期间系统分配的固定的存储空间。动态存储区: 程序运行期间根据需要进行动态分配的内存空间。静态存储区和动态存储区都在内存中。作用域:变量可被使用的范围。生存期:变量在程序执行过程中存留时间。全局变量(外部变量)全局变量全部存放在静态存储区;作用域从变量定义处开始到本程序文件末尾;生存期从程序开始执行到程序执行结束(即程序执行期间不被释放)。静态外部变量只能在本文件中被引用。不被static修饰的全局变量可以通过extern被外部文件引用。局部变量原创 2020-10-19 18:03:18 · 2615 阅读 · 0 评论 -
指针变量做函数参数与基本类型的区别
案例:输入两个数,输出其中的大值与小值;# include <stdio.h>int main(){ void swap(int *p1,int *p2); int a,b; int *pointer_1,*pointer_2; printf("please enter a and b:"); scanf("%d,%d",&a,&b); pointer_1=&a; pointer_2=&b; if(a<b) swap(p原创 2020-10-22 12:41:40 · 708 阅读 · 0 评论 -
C语言建立动态链表
建立一个存放学生数据的动态链表#include <stdio.h>#include <stdlib.h>//定义一个常量LEN,用来表示一个结构体的长度 #define LEN sizeof(struct Student) //声明一个结构体,包括学生编号,成绩,以及一个和该结构体相同基类型的指针变量struct Student { long num; float score; struct Student *next;}; //分号不能少in原创 2020-11-03 17:08:12 · 1733 阅读 · 1 评论 -
有关指针的小结
文章目录1. 准确理解指针2. 有关指针变量的归纳比较3. 有关指针的运算1. 准确理解指针指针就是地址。&a是变量a的指针,即变量a的地址。数组名是一个指针,即数组首元素的地址。函数名是一个指针,即函数代码区首字节的地址。地址是 带类型的地址一个指针型数据包含3个信息:存储的值(纯地址)他本身的类型(指针类型 * )基类型(地址指向的数据的类型)什么叫“指向”?**把谁的地址存放在指针变量中,就说这个指针变量指向谁。**只有与指针变量基类型相同的类型的数据的地址才能原创 2020-11-01 14:44:50 · 116 阅读 · 0 评论 -
字符数组的初始化及字符串的使用
文章目录字符数组的定义字符数组初始化字符串存放'\0'的作用字符数组的定义同整型数组一样:char c[10]; char ch[3][4];字符数组初始化定义数组时初始化,如: char c[10]={'a','b','c','d'};如果输出格式为printf("%d\t",c[i]); 则会输出字符分别对应的ASCII码,后面用0补全;如果输出格式为printf("%c\t",c[i]);则会输出a b c d四个字符,后面元素自动定为空字符(’\0’),输出结果如图:由于字符原创 2020-10-15 18:55:45 · 10221 阅读 · 1 评论 -
C语言中gets和scanf的区别
gets函数和scanf函数都可以作为字符串的输入函数。相同点:都是将从键盘输入的字符串存入数组中,输入完成后要以回车结束输入。不同点:用scanf时,在输入过程中碰到空格时,系统认为输入结束,并将空格之前的字符作为有效字符存入数组,并在尾部追加\0作为结束标志;用gets时,空格字符被看做有效字符,也就是说只有碰到回车符时,才认为输入结束。...原创 2020-10-17 00:20:09 · 544 阅读 · 0 评论 -
C语言解释汉诺塔问题
问题概述有三个座A,B,C,A座上有64个盘子,从下到上盘子逐渐变小。要把这64个盘子从A座移到C座,但每次只能移一个盘子,且在移动过程中三个座上的盘子始终保持大盘在下,小盘在上。解题步骤递归方法(移动最后一个盘的步骤):将A座n-1个盘借助C座移动到B座上;(借助C座的过程其实就是移动倒数第二个盘的同样的过程)把A座剩下一个盘移动到C座上;将n-1个盘从B座借助A座移到C座上。代码实现#include "stdafx.h"int main(){ void hanoi(int原创 2020-10-17 20:33:57 · 449 阅读 · 2 评论 -
C语言知识点小结
文章目录第一章 程序设计和C语言第二章 算法第三章 顺序程序设计第一章 程序设计和C语言程序:是一组计算机能识别和执行的指令。计算机的本质:程序的机器。计算机语言发展历史机器语言(二进制指令)->汇编语言(符号代替二进制)->高级语言(源程序经过编译转换为目标程序执行)。C语言特点:用途广泛,功能强大,使用灵活的面向过程的编程语言。C语言是一个很小的内核语言,不直接提供输入输出语句,文件操作语句等,这些操作由编译系统提供的库函数来实现。语言限制不严格,书写灵活,例如对数组下原创 2020-11-14 17:37:47 · 488 阅读 · 1 评论 -
二维数组中指针在不同位置的含义
定义一个二维数组:int a[3][3] ={1,2,3,4,5,6,7,8,9};a 表示数组第0行起始地址 ,指向行,同&a[0]*a 表示0行0列元素地址,指向列,同a[0],*(a+0),&a[0][0]a与*a纯地址相同,但基类型不同,前者是一维数组,后者是整型数据,下面同理:如: a[1]和 a+1(a[1] 表1行0列元素地址;a+1 表第一行起始地址)a[1]同&a[1][0],*(a+1),*(a+1)+0;(a+1)同&a[1]a[1原创 2020-10-27 13:37:13 · 260 阅读 · 0 评论 -
数组名做函数参数的本质是什么?
int main(){ void fun(int arr[],int n); int array[10]; ... ... fun(array,10); return 0;}void fun(int arr[],int n) //用数组名做函数参数{ ...}实际上,C编译都是将形参数组名作为指针变量来处理的。fun(int arr[],int n)和fun(int *arr,int n)这两种写法等价。【注】数组名作函数参数,传递过来的信息是实参数组的首原创 2020-10-24 23:54:22 · 651 阅读 · 0 评论 -
C语言冒泡算法(升序排序)
int a[10]; int i,j,t; printf("input 10 numbers:\n"); for(i=0;i<10;i++){ scanf("%d",&a[i]); } printf("\n"); //一共排9趟序,因为最后一趟只剩一个数,不需要排 for(i=0;i<9;i++){ //每趟从第一个数开始排,第一趟排完将最大的一个数沉底(即放在数组最后一个位置), 第二趟不需要再管最后一个数了,后面同理,第i趟只需要管前面9-i个数就够了原创 2020-10-13 19:27:17 · 941 阅读 · 0 评论 -
C语言中的for和while是否可以真的无条件等价
通常情况下for循环和while循环是无条件等价的。例如:for(int a=1;a<=4;a++){ printf("a=%d\t",a);}与int a=1;while(a<=4){ printf("a=%d\t",a); a++;}这两种写法等价。 运行结果均为:a=1 a=2 a=3 a=4 但当循环体内有continue时,二者不等价。将代码修改为:for(int a=1;a<=4;a++){ if(a==3){ continue;原创 2020-10-12 15:46:46 · 2765 阅读 · 2 评论 -
C语言中的switch详解
switch语句:C语言中实现多分支选择的语句例:输入一个分数等级,输出对应分数switch(grade) { case 'A':printf("85~100\n"); break; case 'B':printf("70~84\n"); break; case 'C':printf("60~69\n"); break; case 'D':printf("<60\n"); break; default: printf("data error!\n"); }【注】switch(原创 2020-10-11 22:15:02 · 15780 阅读 · 0 评论