前言
续上一篇内容
新手小赵的博客,从各方面有许多不足之处,欢迎各位多多批评指正。用心整理了对大家尤其是新手有用的C语言基础知识,小赵与各位共勉
上篇文章->>(http://t.csdn.cn/zPwV6)
二、基础知识
4.常量
1.字面常量
2.const修饰的常变量
3.#define定义的标识常量
代码示例:
#include<stdio.h>
#define MAX 1000
int main()
{
int arr[MAX] = { 1,2,3,4,5,6,7,8,9,10 };
printf("%d", arr[0]);
return 0;
}
4.枚举常量(枚举--列举)
? ?enum是枚举关键字
? ?枚举类型中列举出的可能取值都是枚举常量
代码示例:
#include<stdio.h>
enum Sex
{ //默认值 可赋初始值,但不能改变
MALE, //0
FEMALE //1
SECERT //3
};
int main()
{
enum Sex s1 = MALE;
enum Sex s2 = FEMALE;
printf("%d %d \n", MALE, FEMALE);
//printf("")
return 0;
}
5.字符串+转义字符+注释
1).字符:由单引号引起的一个字符称为字符字面值,或简称字符。
? ? ? ? ‘a’;
2).字符串:由双引号引起的一串字符称为字符串字面值,或简称字符串。
????????“a”;
????????“hello world”;
注:字符串的结束标志是一个\0的转义字符。计算字符串长度时\0是结束标志,不算作字符串内容。
3).转义字符
\n 换行
\' 用于表示字符常量'
\" 用于表示一个字符串内部的双引号
\\ 表示一个反斜杠,防止它被解释为一个转义序列符
\a 警告字符,蜂鸣
\b 退格符
\f 进纸符
\r 回车
\t 水平制表符
\v 垂直制表符
\ddd ddd表示1~3个八进制的数字
\xdd dd表示2个十六进制数字
4).注释: 解释代码含义? 或屏蔽不需要的代码
//xxxxxxxxxx? ? C++注释风格
/*xxxxxxxx*/? ? ?C语言注释风格
?6.选择语句
if
{
......
}
else
{
......
}
7.循环语句?
while语句
for语句
do while语句
8.函数?
#include<stdio.h>
int Add(int x, int y) //加函数
{
int z = x + y;
return z; //返回函数值
}
int main()
{
int a, b;
int sum = 0;
scanf("%d%d", &a, &b);
sum = Add(a, b); //函数调用
printf("%d", sum);
return 0;
}
9.数组
1).数组的定义
2).数组的使用
#include<stdio.h>
int main()
{
int a[5] = { 0 }; //定义整型数组
int i=0;
//输入五个数给数组
while (i < 5)
{
scanf("%d", &a[i]);
//printf("%d ",a[i]); //可依次输出输入的数
i++;
}
//输出五个数
i = 0;
while (i < 5)
{
printf("%d ", a[i]);
i++;
}
return 0;
}
?10.操作符
1).算术操作符:+? ?-?? *? ?/? ?%
2).移位操作符:>>? ? ?<<
#include<stdio.h>
int main()
{
int a = 2;
int b,c;
//移(2进制)位操作符
b = a<< 2; //左移
c = a>> 2; //右移
printf("%d\n", a); //2
printf("%d\n", b); //8
printf("%d\n", c); //0
return 0;
}
3).位操作符:&? ? ^? ? |
4).赋值操作符:=? ?+=? -=? ?*=? ?/=? ?&=? ?^=? ?|=? ?>>=? ?<<=
5).单目操作符:!? ? ? ? ? ? ? ? ? ?逻辑反操作
??????????????????????-? ? ? ? ? ? ? ? ? ?负值? ?
??????????????????????+? ? ? ? ? ? ? ? ? 正值
? ????????????????????&? ? ? ? ? ? ? ? ?取地址
????????????????????sizeof????????????操作符的类型长度(以字节为单位)
????????????????????? ~? ? ? ? ? ? ? ? ?对一个数的二进制按位取反
???????????????????? ?--? ? ? ? ? ? ? ? ?前置、后置--
???????????????????? ++? ? ? ? ? ? ? ? ?前置、后置++
?????????????????????? *? ? ? ? ? ? ? ? ? 间接访问操作符(解引用操作符)
????????????????????(类型)? ? ? ? ? ? 强制类型转换
#include<stdio.h>
int main()
{
int arr[10] = { 0 }; //10个整型元素的数组
int sz;
printf("%d\n", sizeof(arr)); //10*sizeof(int)=40
sz = sizeof(arr) / sizeof(arr[0]);
//计算数组元素的个数
//个数=数组总大小/每个元素的大小
printf("%d\n", sz);
return 0;
}
6).关系操作符: >? ?>=? ?<? ?<=? ?!=???用于测试“不相等”
? ? ? ? ? ? ? ? ? ? ? ?==??????用于测试“相等”
7).逻辑操作符: &&?????逻辑与
? ? ? ? ? ? ? ? ? ? ? ? ? ||??????????逻辑或
8).条件操作符: exp1?exp2?:?exp3
9).逗号表达式:exp1,exp2,exp3,...expn
? ?????特点:从左向右依次计算,整个表达式的结果是最后一个表达式的结果
10).下表引用操作符[]
11).函数调用操作符()
?11.关键字
常见关键字:auto??break???case??char??const???continue??default??do???doubleelse??enum???externfloat
??for???goto??if???int???long??register????return???short??signedsizeof???staticstruct??switch??
typedef? union??unsigned???void??volatile??while
(C语言提供了丰富的关键字,这些关键字都是语言本身预先设定好的,用户自己是不能创造关键字的。)
12.指针
1).内存 : 是电脑上特别重要的存储器,计算机中程序的运行都是在内存中进行的。所以为了有效的使用内存,就把内存划分成一个个小的内存单元,每个内存单元的大小是1个字节。为了能够有效的访问到内存的每个单元,就给内存单元进行了编号,这些编号被称为该内存单元的地址。
????????变量是创建内存中的(在内存中分配空间的),每个内存单元都有地址,所以变量也是有地址的。
2). 指针变量的大小: ????????指针大小在32位平台是4个字节,64位平台是8个字节。
13.结构体
?结构体 : 是C语言中特别重要的知识点,结构体使得C语言有能力描述复杂类型。比如描述学生,学生包含:名字+年龄+性别+学号这几项信息。这里只能使用结构体来描述了。
#include<stdio.h>
struct Stu
{
char name[20]; //名字
int age; //年龄
char sex[5]; //性别
char id[15]; //学号
};
int main()
{
struct Stu s = { "张三",20,"男","20220926" }; //结构体的初始化
printf("%s,%d,%s,%s\n", s.name, s.age, s.sex, s.id);//.结构体访问操作符
struct Stu *ps = &s; //->操作符
printf("%s,%d,%s,%s\n", ps->name, ps->age, ps->sex, ps->id);
return 0;
}
总结
快乐的时光总是短暂的,以上就是今天要讲的内容,本文继续简单介绍了小赵同志对C语言的初步认知,简单整理了整体框架。小赵同志继续更新,不断学习的动力是宝子们一键三连的支持呀~。

|