关键字
在C语言中有特殊含义的单词
标识符
26个英文字母,0-9数字,_组成. 首字符不能为数字,不能和关键字同名
注释
#include <stdio.h> //单行注释 //单行注释作用范围: 从第二个/开始,直到这行结束 (除非\,则可以从下一行开始继续单行注释) //注释不会参与编译,这个是给程序猿看的 /* 多行注释 /星 星/ */ //多行注释作用范围: 从/*开始 一直到遇到遇到第一个*/结束 //注释不会参与编译,这个是给程序猿看的 /* 该方法用于根据一个电话号码发送一条信息 其中num为电话号码 */ int sendMessage(int num) { return 0; } int main(int argc, const char * argv[]) { // insert code here... //下面用于打印 printf("sdsdadasdasdas"); // printf("sdswopqpwoooiw"); //可以用于调试或者用来查看代码的功能性 printf("asdetopqwqopqwu"); printf("asiqo"); return 0; }
注释注意点
//需要注释的内容 /* 需要注释的内容 */ //注释可以嵌套 //1.单行注释可以嵌套多行注释 // /* 注释我! */ //2. 单行注释嵌套多行注释时,多行注释必须在同一行内 //-----这里可以------ // /* 需要注释的内容 \ */ //-----这里不可以------ //// /* 需要注释的内容 //*/ //3. 多行注释可以嵌套单行注释 /* // 注释我吧! */ //4. 多行注释不能嵌套多行注释 // /* // /* 注释我吧 */ // */ //建议:初学者先注释后代码
常量
#include <stdio.h> int main(int argc, const char * argv[]) { //整型常量 10; //实型常量(小数) //单精度float / 双精度 double //注意: 默认情况下, 小数都是double 10.1;//双精度double 88.0;//双精度double 5.2f;// 单精度 float //字符型常量,用单引号‘‘的字符型常量 //注意: 字符型常量的单引号‘‘只能是单个字符包括 转义字符:‘\t \n‘等 //错误类型: ‘ab‘, ‘我‘//(汉字占三个字符) //C语言系统的特殊含义的字符 \n \t //字符串常量, 用双引号""的字符串常量 "asas" return 0; }
变量的概念
#include <stdio.h> int main(int argc, const char * argv[]) { //变量:可以存储值并且修改值的 ,内存开辟一个存储空间用来存放数据或修改数据 //变量的定义. 数据类型 变量名称 //定义整型变量: int intValue; //定义double型变量 double doubleValue; //完全初始化,与部分初始化 //完全初始化,连续定义n个变量每个变量都赋予了初始值 //1.连续定义三个变量,并完全初始化 int a = 10, b = 12, c = 13; //2.连续定义三个变量,完全初始化 int num1, num2, num3; num1 = num2 = num3 = 10; //部分初始化 //部分初始化, 连续定义了n个变量,有一个以上的没有赋值 float floatValue1, floatValue2, floatValue3 = 10.0f; //占位符 printf("%f\n", floatValue1); //比格 printf("%.*f\n",4, 1.223232); return 0; }
变量作用域
#include <stdio.h> //定义函数 void method() { int number; // number = 100; // printf("Method printf\n"); } int value;//定义一个整型变量 int main(int argc, const char * argv[]) { //变量作用域 //变量作用域: 从变量定义的那行开始,一直到遇到}或return 结束 /* //1.定义一个变量 int number; //2.调用函数 method(); //在不同的内存中,同名的不同变量他们的值不会相互影响 //3.输出验证 printf("number = %d\n", number); */ /* value = 10; //赋值为10 { int value;//在另一个{}定义相同的变量名 变量同名就近原则 value = 200;//赋值200 //输出验证 printf("value = %d\n", value); } //输出验证 printf("value = %d\n", value); */ //内存地址从大到小,则 后定义的变量的地址小于先定义的变量的地址 //%p可以按十六进制打印出变量的地址 //获取变量的地址 则需要使用 &变量名 来获取 // a b c d e f // 10 11 12 13 14 15 int value0,value1; printf("value0 = %p\n", &value0); printf("value1 = %p\n", &value1); return 0; }
printf函数
#include <stdio.h> int main(int argc, const char * argv[]) { //快捷键 commond + option + 方向键 折叠代码 // commond + / 单行注释 // commond + \ 在光标这行打断点或取消断点 /* //输出函数printf //1. 整数的输出 int intValue1 = 10, intValue2 = 20; printf("intValue1 = %i , intValue2 = %i\n", intValue1, intValue2); //2. 浮点数的输出 默认保留六位小数 float floatValue1 = 19.0f; double doubleValue1 = 19.00; printf("floatValue1 = %f, doubleValue1 = %lf\n", floatValue1, doubleValue1); //3字符输出 char charValue = ‘A‘; printf("charValue = %c\n", charValue); */ /* //位宽 %mx x表示输出的占位符,m表示位宽 //1.右补齐 printf("%5d\n", 10); //2.左补齐 printf("%-5da\n",10); //3.带0补齐 printf("%05d\n",2); //4.突破位宽 printf("%2d\n",9999); */ //float的坑 float的有效位是7位, double的有效位是15位 超过有效位以后的为垃圾数值 //有效位,从数的第一位开始包括小数点 //保留2位小数 printf("%.2f\n", 3.1415926f); //保留10位小数 float floatValue = 3.141592647743443; printf("%.10f\n", floatValue); //double double doubleValue = 3.141592647743443; printf("%.10lf\n", doubleValue); return 0; }
scanf函数
#include <stdio.h> int main(int argc, const char * argv[]) { //scanf //scanf(格式化字符串, 地址列表(char * 类型的不需要加取地址符&)) 地址列表是变量的地址 scanf("%d", &num); //存储输入的数 --> 定义变量进行存储 // 在终端输入的字符存格式要和scanf中格式化字符串一样 // //1.定义变量 // int num1, num2; // //2.scanf函数读取并存储输入的数据 // scanf("%d,%d",&num1, &num2); // //3.验证输出 // printf("num1 = %d, num2 = %d\n", num1, num2); /* //求两个数的和 //1.定义两个变量 int value1, value2; //2.提示输入第一个数 printf("亲,请输入第一个数,按回车结束\n"); //3.scanf读取第一个数 scanf("%d", &value1); //4.提示输入第二个数 printf("亲,请输入第二个数,按回车结束\n"); //5.scanf读取第二个数 scanf("%d", &value2); //6.计算两个数的和 int result = value1 + value2; //7.验证输出 printf("result = %d\n", result); */ /* //求两个数的和 //1.定义两个变量 int value1, value2; //2.提示输入两个数 printf("亲,请输入两个数,按回车结束\n"); //3.scanf读取两个数 scanf("%d,%d", &value1, &value2); //4.计算两个数的和 int result = value1 + value2; //5.验证输出 printf("result = %d\n", result); */ //注意, 若scanf要输入字符则需要分隔符,比如"%d,%c" //scanf("%d%d",&value1,&value2) //在终端输入的时候可以使用空格,回车,tab键 //若有%c除外 /* //1.定义变量 double doubleValue; char charValue; //2.scanf读取 scanf("%lf,%c",&doubleValue, &charValue); //3.验证输出 printf("doubleValue = %lf, charValue = %c\n", doubleValue, charValue); */ /* 有问题 //1.定义变量 double doubleValue1,doubleValue2; char charValue; //2.scanf读取 scanf("%lf%c%lf",&doubleValue1, &charValue, &doubleValue2); //3.验证输出 printf("doubleValue1 = %lf, charValue = %c, doubleValue2 = %lf\n", doubleValue1, charValue, doubleValue2); */ //scanf 格式化字符串中,若读取的数据类型不一样则自动停止读取 //scanf 若格式化字符串中含有\n ,一般是不允许有的,则会出问题 //scanf 若格式化字符中有\n, 在终端输入\n(或者其他字符即可终止输入)即可破解 //回车是终止scanf输入的符号 //1.定义变量 int value; //2.scanf 读取 scanf("%d\n", &value); //3.验证输出 printf("value = %d\n", value); //技巧: 只要输入scanf多个,则加入分隔符例如"," return 0; }
scanf函数原理
#include <stdio.h> int main(int argc, const char * argv[]) { //1.提示用户输入 // printf("请输入两个数,并用逗号分开,按回车键结束\n"); //2.定义变量 int value1, value2; char charValue; //3.用户输入 scanf("%i%c%i",&value1, &charValue, &value2); //scanf输入缓冲 //4.求差 // int res = value1 - value2; //5.验证输入 printf("value1 = %i, charValue = %c, value2 = %i\n",value1, charValue, value2); // fflush(stdin); //刷新缓冲区,然而并没有什么用 setbuf(stdin, NULL);//将缓冲区设置为0
//rewind(stdin);//这个也可以 //1.定义变量 int value3; char charValue2; //2.用户输入 scanf("%c%d",&charValue2, &value3); //3.验证输出 printf("charValue2 = %c, value3 = %d\n", charValue2, value3); return 0; }
原文:http://www.cnblogs.com/WH-Learner/p/5107475.html