栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

初始C语言(2)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

初始C语言(2)

初始C语言(2)

初始C语言(2)


文章目录
  • 初始C语言(2)
  • 一、常量
      • 1.1字面常量
      • 1.2const修饰的常变量;
      • 1.3#define定义的标识符常量
      • 1.4枚举常量
  • 二、字符串+转义字符+注释
    • 2.1字符串
    • 2.2转义字符
    • 2.3注释
  • 三、选择语句
    • 3.1选择结构
    • 3.2循环结构
  • 四、函数
  • 五、数组
    • 5.1数组的定义:
    • 5.2数组的下标
    • 5.3数组的使用:
  • 总结`



一、常量

什么是字符?
答:键盘上输入的就是字符,C语言中定义由一对单引号引起来的(‘a’)就是一个字符;(’ ')单引号中间一个空格叫做空白字符;
C语言中的常量和变量的定义的形式有所差异;
C语言中的常量分为以下几种:
a:字面常量
b:const修饰的常变量
c:#define定义的标识符常量
d:枚举常量

1.1字面常量

直接可以从字面看出来数值是多少的常量;

#define  _CRT_SECURE_NO_WARNINGS 1
#include#include//标准输入输出头文件
//std-标准  i-intput 输入  o-output 输出
int main() {
	//1.字面常量
	30;	//整型的字面常量
	3.14;	//浮点型的字面常量
	"abcdef";	//字符串字面常量
		'a';	//字符型的字面常量
		return 0;
}
1.2const修饰的常变量;

const修饰的变量就具有了一种常属性(即不可被修改);
但是const后面的变量本质还是一个变量,只是变成了一个常变量;

int main() {
    int num = 100;
	num = 200;
	printf("%dn", num);//num = 200;
	//在变量的前面加const
	const int num1 = 150;
		num1 = 204; 
		printf("%dn", num1);//一定会报错,左值指定const对象
	return 0;
}

怎么验证后面的还是一个变量?

int main() {
    int n = 10;
	int arr[10]={1,2,3,4,5,6,7,8,9,10};//10是常量;
	int arr1[n] = { 4,5,6,7,8,9,10,1,2,3 };//报错应该输入常量表达式,说明n是一个变量;
	const int m = 11;
	int arr3[m] = { 1,2,3,4,5,6,7 };报错应该输入常量表达式,说明m是一个变量;
	//m虽然是一个变量,但是因为有const的修饰,他不能被修改;
         return 0;
}

C语言在C99标准之前,不允许数组的大小使用变量指定;

int n=10;
int arr[n];//err报错

C99标准中引入了变长数组的概念,允许了数组的大小可以使用变量指定;
但是VS2019不支持C99中的变长数组的概念;

int n=10;
int arr[n];//OK
1.3#define定义的标识符常量
int main() {
    	//3.#define 定义的标识符常量;
	int a = MAX;
	printf("%dn", a);//输入a=1000;没有问题
	MAX = 2000;//err 因为MAX是一个常量不可以修改;
         int arr[MAX];//因为MAX是一个常量
                      //所以可以用它来定义一个数组的大小;
	return 0;
}
1.4枚举常量

枚举的意思:一 一列举;
C语言就支持我们创建枚举类型,enum是枚举的关键字;枚举类型是有值的,初始默认值是0,1,2…依次递增,但是初始值是可以更改的,比如在枚举类型的结构体中令MALE=4;就会将默认值修改,依次往后推FEMALE=5;SECRET=6;并且枚举常量是常量,不可以被修改;
在枚举类型结构体MALE=4;这种操作叫做赋初值,与枚举类型不可修改不矛盾,结构体外面修改才会报错;

#define  _CRT_SECURE_NO_WARNINGS 1
#include//标准输入输出头文件
 enum sex {
	//枚举类型中列举出的可能指都是枚举常量;
	//MALE,//默认值是0
	MALE=4;
        FEMALE,//默认值是1
	SECRET//默认值是2
};
int main() {
//4.枚举常量
	enum Sex s =SECRET;
	enum Sex s2 = FEMALE;
	printf("%d%d%dn", MALE, FEMALE, SECRET);//0,1,2
	MALE = 3;//err 左边不可以修改,所以枚举常量也是常量;
        return 0;
}

其实枚举类型中MALE,FEMALE,SECRET本质还是数,所以如果要打印用%d来操作;

二、字符串+转义字符+注释 2.1字符串

键盘上能敲出来的都是字符。(单引号引起来的)
可以在VS中打开监视功能来查看变量的相关信息和变化情况;(但是需要调试起来之后在调试里面窗口点监视)
计算机中的存储表示都是二进制;
‘a’–97 ‘b’–98 (ASCII编码)
ASCII表(字符大小写对应不同的ASCII值)
ASCII表查询
%d-有符号的整型
%s-打印字符串
%c-打印字符

#include//标准输入输出头文件
int main() {
    	char ch = 'a';//将字符a赋给变量ch;
	ch = 'x';
	printf("%c",ch);//ch=x;

	return 0;
}

双引号引起来的一串字符叫做字符串字面值,比如:“Hello bit.n”,或者简称字符串。(只要是双引号引起来的不管里面什么内容都属于字符串)
注意:字符串的结束标志的一个\0的转义字符,在计算字符串长度的时候\0是结束标志,不算做字符串的内容。

#include//标准输入输出头文件
int main() {
    "zhangsan";
    "a";
    ""; 
    char arr1[]="abcdef";//最后面有一个
    char arr2[]={'a','b','c','d','e','f'};	//根据后面内容的大小确定数组的大小 
    printf("%dn",strlen(arr1));//6
    printf("%dn",strlen(arr2));//随机的
      return 0;
}

字符串的存储:使用char型的数组来存储

是字符串的结束标志,字符串结尾隐藏着一个,如上面代码中arr2数组中存储的字符结尾没有,所以直接打印会一直打印,直到在所开辟的系统空间中遇到一个才会结束打印。但是可以人为的在后面加上一个;
strlen函数是C语言的一个库函数,可以计算字符串的大小,是计算结束的标志,统计的是字符串中之前出现了多少个字符;

2.2转义字符

转义就是转变意思(意义);将原来的意思转变了

int main()
{
    printf("abcndef");//abcndef
    printf("abcndef");//adb换行def
    printf("C:trogram Files (x86)tingDing")//打印出来地址会发生改变,因为t识别的不是字符t,
                                        //而是转义字符
     printf("%sn","(are you ok??)");//新版本的打印出来是??但是旧的编译器打印出来是一个】;
     printf("%sn","(are you ok??)");//但是这样在任何地方打印都是??不会理解为三字母词;
     //三字母词                                 
     printf("%cn",''');//报错
         printf("%cn",''');//对单引号加上转义,顺利打出'      
         printf("%cn",'130');//  130还是字符,用%c打印 结果是X      
           printf("%cn",'x30');//字符0;  
            printf("%cn",'x3a');//a是10,3是3乘以16的一次方 ,结果是58,打印出来是58,表示:
             printf("%cn",strlen("c:test628test.c"));//大小是14                
    return 0;
}

转义表:
三字母词:
??)----->];
如果想打印的内容本身就是特殊符号引起的错误,可以在前面加上转义符顺利打出;
ddd表示1-3个八进制的数字。如:130x(超过3个就会超出内存);
dd表示2个十六进制的数字,如x30 0
xxx表示一个将xxx这个八进制的数转化成十进制作为ASIIC码代表其对应的字符;
例如130转化成十进制为88,而88作为ASIIC码代表X,即打印结果是X;
xdd 表示2个十六进制的数字
strlen计算时一个转义字符大小是1;

2.3注释

1.代码中有不需要的代码可以注释掉
2.代码中难道的地方加上注释,方便理解;
//C++注释风格–C99
这是C语言的注释风格,可注释多行,不支持嵌套注释;

三、选择语句

C语言是结构化的程序设计语言
C语言有三种结构:
顺序结构
选择结构
循环语句

3.1选择结构

if语句和switch语句

int main()
{
    int input=0;
    scanf("%dn",&input);
    if(input==1)
        printf("所输入的是1n");
        else    
        printf("所输入的是0n");
    return 0;
}
3.2循环结构

for循环
while循环
do while循环

int main(){
    while(循环条件语句){
        执行语句;            
    }
}
四、函数

数学中的函数:f(x)=2*x+1;
C语言的函数和数学函数还是非常相似的;
两个整数的和:

int Add(int x,int y)  //Add函数,x,y是形参
{                       
    int z=0;
    z=x+y;           //函数体
    return z;   //最后将返回的z放到sum里面;
}
int main()
{
    int sum=0;
    int num1=0;
    int num2=2;
    scanf("%d%d",&num1,&num2);
    //求和
   // sum=num1+num2;
   sum=Add(num1,num2);//调用Add函数;
   printf("%d",sum);
   return 0;   
}

函数可以简化代码,让代码逻辑更加清晰,代码复用,减少代码冗余等;
上面的Add函数还可以写成:

int Add(int x,int y)
{
    return (x+y);//更加简单了一些
}

代码剖析:Add叫做函数名
x,y是int型的形式参数;
Add前面的int是函数的返回类型;
大括号里面的部分叫做函数体;

五、数组

存放一组相同类型的数据----数组;

5.1数组的定义:

数据类型+数组名[数组长度]={ };
数组长度也可以不输入,可以根据{ }里的内容自动识别数组大小;

int arr[n]={1,2,3,4,5};//数据类型+数组名[数组长度]={     };
char ch[5]={0};//不完全初始化,剩余的默认会初始化0;
char ch2[]={'a','b','c'};//自动识别数组大小为3
char ch3[]={0}//一个;
char ch4=0;//放进去是其实是一个,但是和0没有多大区别;

存进数组的每一个字符其实本质上是存储其ASCII码值;

5.2数组的下标

数组里面的元素有下标(标号),从0开始;也是一个转义字符----ASCII值是0
可以根据下标访问数组,但是不可以越界访问;
越界访问就是具体值某一个数组大小为10,则它里面元素的下标是0~9,一旦超过9就会越界访问报错;

5.3数组的使用:

创建数组时,数组的大小只能时常量,但是访问输入输出数组某个元素时,数组元素的下标可以是变量,两者不矛盾;

int main()
{
    int arr[10]={0};
    //0~9
    //输入10个数给数组
    int i=0;
    while(i<10)
    {
        scanf("%d",&arr[1]);//使用scanf函数一定要注意&(取地址运算符);
        i++;    
    }
    //输出数组中的10个数;
    i=0;
    while(i<10)
    {
        printf("%d",arr[i]);
        i++;    
    }
    return 0;
}
总结`

初始C语言(2)里面讲到了常量的分类以及每种常量的相关知识及使用方法,以及字符串的相关知识,还有C语言的顺序结构,选择结构和循环结构,最后还有函数的知识和数组的相关知识,学习如逆水行舟,不进则退,明天要比今天更努力,加油!!!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/982981.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号