快捷搜索:  汽车  科技

c语言学习技巧和方法建议(我的C语言学习日记02)

c语言学习技巧和方法建议(我的C语言学习日记02)跟老师学到了个小技巧,针对VS编译器对于函数不安全报错的解决办法:在第一行加上 “#define _CRT_SECURE_NO_WARNINGS 1”这句话即可(不用写双引号)。但每次编写代码都要写有点麻烦,这是精华来了(对于我个人来说觉得比较厉害的),可以找到安装路径下的“newc file.cpp”文件,我的路径是这个D:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcprojectitems\newc file.cpp;打开这个.cpp文件把上面提到的那行神奇的语句加上就OK了;这样的一通操作下来以后每次编写代码都会在第一行出现这句话,美滋滋。int a=100; int main() { int a=10; // printf("%d\n" a); return 0;//打印结果:10

​​​​​继续敲代码,其他的目前没啥特别的感悟,大部分迷惑和不适应,但是!虽然我看不懂,但是我大受震撼,干就完了。

开启正式编程

新建项目,选中Visual C 再选中空项目→输入名称→选中位置→确定,在“解决方案资源管理器”中右击源文件→添加→新建项,在弹出窗口中选中C 文件→输入名称:xxxx.c→添加。

优化配置

在“解决方案资源管理器”(若找不到可在“视图”选项卡打开)里右击项目名称→属性→“链接器”下的“系统”→“子系统”里的下拉箭头→控制台→应用→确定;设置过后运行程序就能看到运行结果。

基础知识

main()为主函数,是程序的入口,有且仅有一个
C语言的变量要先定义,再使用,从位置来看放在代码块的最前面

#include <stdio.h> //标准输入输出文件,全称:standard input output int main() { //在这里完成任务 //打印函数为printf //全称为print function printf("hello word!\n"); //printf()是库函数,C语言提供的函数,调用需要包含stdio.h文件,即#include <stdio.h> return 0; }

数据类型:char是字符数据类型,short是短整型,int 是整型,long是长整型,long long更长的整形,float单精度浮点数,double双精度浮点数,long double长双精度浮点数

打印格式

int main() { char ch='A'; printf("%c\n" ch);//%c--打印字符格式的数据 int age=20; printf("%d\n" age);//%d--打印整形十进制数据 return 0; }

%d-打印整型%c打印字符型%f打印浮点数即打印小数%p以地址的形式打印%x打印16进制数字
每个类型所占的空间大小:

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字节或8字节 printf("%d\n" sizeof(long long));//占8字节 printf("%d\n" sizeof(float));//占4字节 printf("%d\n" sizeof(double));//占8字节 return 0; }全局变量和局部变量

全局变量:定义在代码块{}之外的变量,作用域是整个工程;即使全局变量在外部,用extern声明后也可以使用。(extern用来声明外部符号)。生命周期是整个程序的生命周期
局部变量:定义在代码块{}之内的变量,作用范围只在局部的代码块内有效。生命周期是进入作用域开始,出作用域结束

int a=100; int main() { int a=10; // printf("%d\n" a); return 0;//打印结果:10 }

当局部变量和全局变量重名时,局部变量优先(建议不要重名)

针对VS编译器对于函数不安全报错的解决办法

跟老师学到了个小技巧,针对VS编译器对于函数不安全报错的解决办法:在第一行加上 “#define _CRT_SECURE_NO_WARNINGS 1”这句话即可(不用写双引号)。但每次编写代码都要写有点麻烦,这是精华来了(对于我个人来说觉得比较厉害的),可以找到安装路径下的“newc file.cpp”文件,我的路径是这个D:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcprojectitems\newc file.cpp;打开这个.cpp文件把上面提到的那行神奇的语句加上就OK了;这样的一通操作下来以后每次编写代码都会在第一行出现这句话,美滋滋。

例:输入两个数,求和

#define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> #include <string.h> int main() { int num1=0; int num2=0; int sum=0; //输入数据-使用输入函数scanf scanf("%d%d" &num1 &num2);//&--取地址符号 sum=num1 num2; printf("%d\n" sum); return 0; }

&取地址符号:把获取的数据放到该变量的地址

常量
  1. 字面常量:常见的数字:8;100;3.14...
  2. const-常属性修饰后变为常变量(变量本质还是变量,具备了常属性),把变量变成常量

int main() { const int n=0;//定义为常变量 int arr[n]={0};//数组的n处应该输入常量表达式 return 0;//出现错误,说明常变量本质还是变量 }

3. 标识符常量:#define定义标识符常量

#definde MAX 10 int main() { int arr[MAX]={0};//MAX放在数组的常量表达式可用 printf("%d\n" MAX); return0;//不报错,可以使用,说明#define定义的是常量 }

4. 枚举常量

enum Sex { MALE FEMALE SECRET }; int main() { enum Sex a=FEMALE; printf("%d\n" MALE); printf("%d\n" FEMALE); printf("%d\n" SECRET); return 0; }

enum为枚举关键字,MALE FEMALE SECRET为枚举常量,printf("%d\n" MALE);打印的值为0 printf("%d\n" FEMALE);打印的值为1printf("%d\n" SECRET);打印的值为2;即枚举常量默认从0开始依次递增(不能更改) 枚举变量"a"是可以改的

字符串、转义字符、注释字符串

双引号引起来的字符叫做字符串,末尾自动以'\0'(字符串结束标志)作为结尾,其中字符串结束标志不算作字符串内容,但占用一个字节的存储空间

#include <string.h> int main() { char arr1[] = "abc";//存放的内容为'a' 'b' 'c','\0' 其中\0为字符串结束标志 char arr2[] = { 'a' 'b' 'c' };//仅存放'a' 'b' 'c' ,没有结束标志 printf("%s\n" arr1);//打印到\0就停止了 printf("%s\n" arr2);//打印完abc后没有结束标志,继续打印随机值直到打印到\0或0停止 //strlen全称是string length 计算字符串长度的,遇到\0停止计算,且\0不算作长度 需引用头文件 printf("%d\n" strlen(arr1));//结果是3 printf("%d\n" srelen(arr2));//结果任意值 return 0; }

运行结果:

c语言学习技巧和方法建议(我的C语言学习日记02)(1)

​对于arr2可以改为:arr2[]={'a' 'b' 'c' '\0'} 或者arr2[]={'a' 'b' 'c' 0}

转义字符

\ 其他字符会被作为转义序列符解释成其他字符,在前面加一个\就可以不被解释成其他意思(即把当前屏幕上显示的状态原原本本的打印出来)

int main() { printf("c:\test\32\test.c"); return 0; }

打印结果:

c语言学习技巧和方法建议(我的C语言学习日记02)(2)

c语言学习技巧和方法建议(我的C语言学习日记02)(3)

​​结果中的\t被解释成水平制表符,\32被解析成□,这其中又涉及到转义字符的\ddd和\xdd两类;

\ddd

ddd表示1~3个八进制的数字。如:\130

\xdd

dd表示2个十六进制数字。如:\x30

例如printf("%c\n" '\32'); 其中\32的32是2个八进制数字,32作为八进制代表的那个十进制数字,作为ASCII码值对应的字符,32转为十进制为26,打印26作为ASCII码值代表的字符;因是八进制的数字,所以类似\328的数字是错误的,八进制逢八进一,所以不可能出现8
printf("%c\n" '\x61');同理,61转为十六进制为97,打印ASCII值为97的字符;还需注意,转义字符为一个字符,再次使用strlen函数验证:printf("%d\n" strlen("c:\test\32\test.c"));打印结果为13 即长度为13;printf("%d\n" strlen("\x61"));//打印结果为1即长度为1

上述代码调整后如图:

int main() { printf("c:\\test\\32\\test.c"); return 0; }

结果就可打印出想要的结果:

c语言学习技巧和方法建议(我的C语言学习日记02)(4)

c语言学习技巧和方法建议(我的C语言学习日记02)(5)

​​

注释

1.代码难懂,加文字解释
2.作废代码

猜您喜欢: