目录
c语言在vs编译器出现的一些问题
我们知道vs编译器在现实开发中有利于编写,但是对于初学者来说经常出现问题,接下来我们一一解决
问题:
我们知道 scanf是C语言提供的
然而scanf_s不是标准c语言提供的,是vs编译器提供的(不具有跨平台性和可移植性)
所以在vs中使用scanf会出现错误
解决:
c语言有些代码不安全,如果使用加一行
#define _CRT_SECURN_NO_WARNINGS 1
其他小问题
在本文字符串的第三个代码中,如果没有像第四个一样修改,VS会报错,显示找不到标识符strlen。所以需要在第四行加入#include <string.h>
常量
c语言中的常量分为一下几种
- 字面常量
-
//int main() //{ //1.字面常量 // //3; // //100; // // return 0; //}
- const修饰的常量
-
int main() { //const - 常属性 const int n = 10;//n是变量但具有常属性,所以说n的是常变量 //*int arr[n] = {0};*/ n = 20;//这里出来会报错,因为n已经被定义 //const修饰的常变量 //const int num = 4; //printf("%d\n", num); //num = 8; //printf("%d\n", num) return 0; }
- #define定义的标识符常量 一般形式为:#define 标识符 常量 //最后没有;
-
//3.define 定义的标识符常量 //#define MAX 10 // //int main() //{ // int arr[MAX] = { 0 }; // printf("%d\n", MAX); // return 0; //}
- 枚举常
-
#include <stdio.h> //4.枚举常量 //枚举-一一列举 // //性别;男 女 保密 //枚举关键字-enum //enum Sex //{ // MALE,//后面是,而不是; // FEMSLE, // SECRET //}; MALE FEMALE SECRET - 枚举常量 //int main() //{ // //enum Sex s = FAMSLE // printf("%d\n", MALE);//0 // printf("%d\n", FEMSLE);//1 // printf("%d\n", SECRET);//2 // // return 0; //}
字符串
“hello bit.\n”
是由双引号引起来的一串字符
打印字符串用%s
注:字符串的结束标志是一个\0的转义字符,在计算字符串长度的时候\0是结束标志,不算作字符串内容
//int float
//char
//字符串类型
//int main()
//{
// "hello";
// "";//空字符串
//
// return 0;
//}
//int main()
//{
// //数据在计算机上保存的时候,储蓄的是2进制
// //a-97
// //A-65
// //ASCII 编码
// //ASCII 码表
// //char arr1[] = "abc";//数组
// "abc"--'a' 'b' 'c' '\0' --'\0\'字符串的结束标志
// //char arr2[] = { 'a','b','c' ,0};
// '0' - 0
// 'a' - 97
// //printf("%s\n", arr1);
// //printf("%s\n", arr2);
//
// //return 0;
//}
#define _CRT_SECURN_NO_WARNINGS 1
#include <stdio.h>
int main()
{
char arr1[] = "abc";
char arr2[] = { 'a','b','c','\0'};
printf("%d\n", strlen(arr1));//sterlen - string length - 计算字符长度的
printf("%d\n", strlen(arr2));
return 0;
}
#define _CRT_SECURN_NO_WARNINGS 1
#include <stdio.h>
#include <string.h>
int main()
{
char arr1[] = "abc";
char arr2[] = { 'a','b','c','\0'};
printf("%d\n", strlen(arr1));//sterlen - string length - 计算字符长度的
printf("%d\n", strlen(arr2));
return 0;
}