课堂笔记:
1. 理解作用域的意义,如以下代码
int a = 666;
int main()
{
printf("1:%d",a);
{
printf("2:%d", a);
}
printf("3:%d", a);
return 0;
}
打印结果正确
a变量为全局变量,其作用域为整个工程(ps:int可以放在main函数之外,但执行性命令如printf则不可放在主函数之外)。
变式代码如下:
int a = 666;
int main()
{
printf("1:%d",a);
{
int b = 888;
printf("2:%d", a);
printf("4:%d", b);
}
printf("3:%d", a);
printf("5:%d", b);
return 0;
}
打印结果出错
这说明,局部变量b的作用域仅为所在括号之内。
ps:
int a = 666;
int main()
{
int b = 888;
printf("1:%d\n",a);
{
printf("2:%d\n", a);
printf("4:%d\n", b);
}
printf("3:%d\n", a);
printf("5:%d\n", b);
return 0;
}
此时将变量b前置,打印正确,但b变量此时并不是严格的全局变量。注意全局变量的定义为{ }之外的变量。
2. extern为声明命令,可以跨文件引用变量。
3. const为修饰常量,可加于int之前,将变量修饰为常量,称为常变量,注意,不可视为常量,仍具有变量属性!
int main()
{
int arr[10] = { 0 };
int n = 10;
int arr2[n] = { 0 };
return 0;
}
如上代码中,arr数组可被执行,但arr2不可以,因为n为变量,不可放入[ ]之内,若将int n前面加上const修饰为常变量,仍旧不可被执行,因为常变量具有变量属性。
*char创建的是字符或字符串,int可创建数组。
4. #define 名字 数字 也是表示常量的方法,放于mian函数之前。
5. 使用printf有几种方法:
int main()
{
printf("%d",100);
//或者
int a = 100;
printf("%d",a);
//或者
printf("%s", "abcde");
///*或者*/
char arr[] = { "abcde"};
printf("%s", arr);
return 0;
}
6. 转义字符问题
其一是为了防止代码被误解为转义字符,加个\即可解决;
其二是用来实现代码的特殊作用,例如\a为蜂鸣声,巧妙运用即可。、
*需要注意的是,\xxx(x代表数字)意思是八进制数字改为十进制数字之后对应ASCII码表转换后得到的结果。例如printf("%c",‘\130’),打印出来的结果是X,而X在ASCII码表中对应十进制数字的88;如果是printf("%d",'\130'),则打印结果为88。%d打印整型,%c打印单个字符。
7. 利用函数计算
int add(a, b)
{
int z = 0;
z = a + b;
return z;
}
int main()
{
int a, b;
scanf("%d%d", &a, &b);
int sum = add(a, b);
printf("%d\n", sum);
return 0;
}
蓝色部分为函数,加红部分一一对应。
8.熟悉常用操作符
如
a=a+5可简化为a+=5;
a=a-3可简化为a-=3
!a为与a值相反的值,若定义a为非0的值,则!a的值为0;反之,若a值为0,!a的值默认为1。
课后总结。