数据类型
//包含一个叫stdio.h的文件
#include <stdio.h>
//c语言中数据的输出格式
//%d - 打印整型
//%c - 打印字符
//%f - 打印浮点数(float)
//%lf - 打印浮点数(double)
//%p - 以地址的形式打印
//%x - 打印16进制数字
//%o ...
int main()
{
//char ch = 'A';
//printf("%c\n",ch);//%c -- 打印字符格式的数据
//short int - 短整型
//int 整型
//int age = 20;
//printf("%d\n", age);//%d -- 打印整型格式的数据
////long 长整型
//long num = 100;
//printf("%d\n", num);
/*float f = 5.0;
printf("%f\n", f);*/
double d = 3.14;
printf("%lf\n", d);
return 0;
}
////int表示main函数返回一个整型值
//int main() //主函数-程序的入口-main函数有且仅有一个
//{
// //库函数-C语言本身提供的函数
// //别人的东西-打招呼
// //#include
// printf("hello world! \n");
// return 0;
//}
数据类型的大小
int main()
{
printf("%d\n", sizeof(char)); //1
printf("%d\n", sizeof(short)); //2
printf("%d\n", sizeof(int)); //4
printf("%d\n", sizeof(long)); //4
printf("%d\n", sizeof(long long)); //8
printf("%d\n", sizeof(float)); //4
printf("%d\n", sizeof(double)); //8
short int age = 20;//2B 16bit 2^16-1 = 65535
int age;//4
return 0;
}
c语言有字符串类型吗?
答:c语言没有原生字符串类型string,c语言中字符串是通过字符指针来间接实现的。
int main()
{
char *p="major"; //字符串
char a[]="major"; //字符数组
printf("p=%s.\n",p);
printf("a=%s.\n",a);
return 0;
}
常量和变量
局部变量和全局变量
int a = 100;
int main()
{
int a = 10;
//局部变量和全局变量的名字建议不要相同-容易误会,产生bug
//当局部变量和全局变量的名字相同时,局部变量优先
printf("%d\n", a); //10
return 0;
}
全局变量的作用范围:
整个工程。
1.同一文件中:
int global = 2023;
void test()
{
printf("test()-- %d\n", global);
}
int main()
{
test();
printf("%d\n", global);
return 0;
}
2.不同文件:
sum.c
int g_val = 10;
test.c
int main()
{
//未声明的标识符
//声明extern外部符号的
extern int g_val;
printf("g_val=%d\n", g_val);
return 0;
}
变量的生命周期
局部变量:
int main()
{
//局部变量的生命周期:进{ 开始,出 }结束(作用域)
{
int a = 10;
printf("a = %d\n", a);//ok
}
//printf("a = %d\n", a);//error
return 0;
}
全局变量的生命周期是:整个程序的生命周期。
计算两个数的和
int main()
{
//计算两个数的和
int num1 = 0;
int num2 = 0;
int sum = 0;
//输入数据-使用输入函数scanf
scanf_s("%d%d", &num1, &num2);//&-取地址符号
//int sum = 0;//c语言语法规定,变量要定义在当前代码块的最前面
sum = num1 + num2;
printf("sum=%d\n", sum);
return 0;
}
四种类型的常量
常量的定义:
- 字面常量
- const修饰的常变量
#define定义的标识符常量- 枚举常量
//4.枚举常量
//枚举-一一列举
//性别:男,女,保密
//颜色:红,黄,蓝
//星期:1,2,3,4,5,6,7
//枚举关键字 - enum
enum Sex
{
MALE,
FEMALE,
SECRET
};
//MALE,FEMALE,SCRET - 枚举常量
int main()
{
enum Sex s = FEMALE;
s = MALE;
//MALE = 6; //常量值不能修改
printf("%d\n", MALE); //0
printf("%d\n", FEMALE); //1
printf("%d\n", SECRET); //2
}
////3. #define 定义的标识符常量
//#define MAX 10
//
//int main()
//{
// int arr[MAX] = { 0 };
// printf("%d\n", MAX);
// return 0;
//}
//int main()
//{
// //2.const - 常属性
//
// const int n = 10; //n是变量,但具有常属性,所以n是常变量
// //int arr[n] = { 0 };
//
// ////const修饰的常变量
// //const int num = 4;
// //printf("%d\n", num);
// ////num = 8;//改不了了
// //printf("%d\n", num);
//
// //1.字面常量
// //3;
// //100;
// //3.14;
//
// return 0;
//}
//int main()
//{
// int num1 = 0;
// int num2 = 0;
// int sum = 0;
// //scanf
// //strcpy
// //strlen
// //strcat
// //...
// //不安全的
// //strcpy_s
// //...
// scanf("%d%d", &num1, &num2);
// sum = num1 + num2;
// printf("sum=%d\n", sum);
// return 0;
//}
字符串类型
int main()
{
char arr1[] = "abc";
char arr2[] = { 'a','b','c' };
char arr3[] = { 'a','b','c','\0'};
//strlen - string length 计算字符串长度
printf("%d\n", strlen(arr1)); //3
printf("%d\n", strlen(arr2)); //随机值 - 直到找到\0才停止
printf("%d\n", strlen(arr3)); //3
return 0;
}
////字符串类型
//int main()
//{
// //数据在计算机上存储的时候,存储的是二进制
// //@#$%...
// //A - 65
// //a - 97
// //...
// //ASCII编码
// //ASCII码值
// char arr1[] = "abc";//数组
// //"abc" -- 'a' 'b' 'c' '\0' -- '\0'是字符串的结束标志
// //char arr2[] = { 'a','b','c' };
// char arr2[] = { 'a','b','c',0 };
// //'\0' - 0
// //'a' - 97
// //'a' 'b' 'c'
// printf("%s\n", arr1); //abc
// //printf("%s\n", arr2); //abc烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫泰,续
// printf("%s\n", arr2); //abc
// return 0;
//}
注:字符串的结束标志是一个\0的转义字符。在计算字符串长度的时候\0是结束标志,不算作字符串内容。
转义字符
| 转义字符 | 释义 |
|---|---|
| " | 用于表示一个字符串内部的双引号 |
| \\ | 用于表示一个反斜杠,防止它被解释为一个转义序列符 |
| \f | 进制符 |
| \n | 换行 |
| \r | 回车 |
| \t | 水平制表符 |
| \v | 垂直制表符 |
| \ddd | ddd表示1~3个八进制的数字。如:\130 X |
| \xdd | dd表示2个十六进制数字。如:\x30 0 |
#include<string.h>
int main()
{
printf("%d\n", strlen("d:\test\32\test.c")); //13
//\32 -- 32是2个8进制数字
//32作为8进制代表的那个十进制数字,作为ASCII码值,对应的字符
//32 --> 十进制 26(3*8^1+2*8^0) --> 作为ASCII码值代表的字符
printf("%c\n", '\32');/**/
printf("%c\n", '\130');//X
printf("%c\n", '\x30');//0
printf("%c\n", '\x61');//a
return 0;
}
//int main()
//{
// //使用\转义
// //printf("%c\n", '\'');
// printf("%s\n","\"");
// return 0;
//}
//int main()
//{
// //\t - 水平制表符
// printf("d:\test\32\test.c\n");
// printf("d:\\test\\32\\test.c\n");
// return 0;
//}
常见ASCII值
| 字符 | ASCII码值 |
|---|---|
| 0 | 48 |
| A | 65 |
| a | 97 |
配套C语言视频资源:1.初识C语言(1)(C语言程序设计教程谭浩强 c语言谭浩强视频教程 c语言零基础入门教程 学习c语言 c语言视频教程 c语音 C语言教程 C语言编程项目 C语哔哩哔哩bilibili
文章介绍了C语言中的基本数据类型,包括char、short、int、long、float和double,并展示了如何使用`printf`函数进行输出。此外,还讨论了C语言中字符串的处理,强调C语言没有原生的字符串类型,而是通过字符指针或字符数组实现。文章还涵盖了常量、变量的概念,以及局部变量和全局变量的区别和作用范围。最后,提到了ASCII值和转义字符在字符串中的应用。

被折叠的 条评论
为什么被折叠?



