每日一练(十五)
11.6 命名冲突与static
首先要明白static的作用是:将作用域限制在一个源文件中,对于局部来说相当于变成了全局,对于全局来说,相当于是限制在这个源文件中。
static还可以用来修饰函数,所以我们可以在多个文件中定义函数为同一个名字,前提是这些函数被定义为static。
为了避免可能出现的命名冲突,如果一个函数仅仅在这个源文件中被其他函数调用,我们应该将此函数声明为static。
11.7 Linux中添加新用户
adduser new_user #创建一个用户名为new_user的新用户
usermod -G sudo new_user #将新用户添加到sudo组中
su - new_user #切换到新用户下
11.8 putchar()函数
putchar函数原型为:
int putchar(int c);
输出一个字符,注意参数虽然是一个字符,但是函数原型里面确却是int,这是因为字符在编译器看来就是一个对应ASCII值的int数据。
11.9 getchar()函数
一个字符输入函数,返回的应该是读取到的字符,可是这里的返回值是int,原因有二:
1.char是有符号的,ASCII的范围可能使char
2.unsigned char虽然可以接收传回的字符,但是出错或者结束键盘输入的时候,返回的是-1,unsigned char无法读取
所以使用int来接收输入的字符,int数据也可以用%c %d %x
来格式化输出。
11.10 二维数组求行列大小
求二维数组得行数、列数。
通过sizeof来求:
char str[][5];
int n, m;
n = sizeof(str) / sizeof(str[0]); //行
m = sizeof(str) / sizeof(char); //列