? mian函数参数问题
我们知道main函数有三个参数argc,argv,envp
我们主要提示一下前面两个 。
现在如果我们在命令行执行如下语句:
D:\cgg.exe how are you!
这么执行后,argv是4,而不是3,因为D:\cgg.exe也是一个参数,而它就保存在argv[0]中 。
这一点千万不能忘记 。
变量相关
? 用字符串初始化字符数组
主要是长度的问题,我们知道C中的字符串是以一个空字符作为字符串的结尾标志 。所以,我们在赋值时,要注意字符数组的长度要比字符串的长度多1 。比如下面这段代码是无法通过编译的:
#include
int main(){
char a[4]="abcd";
return 0;
}
而我们只需要把a的长度改为5就好了 。
? 赋初值问题
这是一个老生常谈的问题,但是还是很容易被忽略 。所以在这里再说一下 。当遇到一些计算求值类的题,一定要注意把变量初始化,赋初值,比如0
? 转义字符问题
我们知道C语言中是有转义字符的 。转义字符以\开头,所以,我们是不能在一对单引号中间直接放置右斜杠的,还有就是注意,斜杠后如果是十六进制的表示码,开头是x或X,而不是0x或0X
? 常用ASCII码记忆
常用的无非是大小写字母和数字,这时一定需要记住的(除非你是上机考试) 。

文章插图
? 字符串常量占用内存问题
我们知道C中的字符串一定是以空字符‘\0’结尾,而这个空字符是不显示的 。所以有的出题老师会在这里设坑,比如:"abcde"占的内存大小是多少字节?虽然是五个字符,但是实际上还有一个空字符,总共是6字节 。
? 字符变量值的问题
我们经常会遇到这样的题,问你某个字符的值是什么 。
这时我们需要尤其小心,尤其是选择题 。
我们举个例子来说:char a='C'
a的值是什么?
是C吗?
如果你说是,那就错了 。
我们只能说a的值是‘C’或者67.
想必你应该能明白我想说什么了 。
单引号是不能省去的,这一点尤其重要,缺少了单引号,它就不再是一个字符了 。
这一点很容易忽略,尤其是选择题,看到C这个选项,一激动就选上了 。那就惨了 。
? 变量类型的范围计算问题
这里只提醒一点,计算范围的时候不要忘记对于有符号的数,有一位符号位 。
? 字符串常量拼接问题
在C语言中是允许进行字符串拼接的 。
也就是说,如果两对引号包含的字符串放在一起,则会被解释成一个字符串 。
比如:
#include<stdio.h>
int main(){
char a[15]="hello""world";
char b[15]="hel""lo""world";
printf("%s",b);
return 0;
}
这两个字符串都是合法的,且和“helloworld”等价 。
数组相关
? 数组下标越界
这个……恐怕是个程序员都会出过的bug,从你初学编程语言到你退休 。
考试也可能会出现这个问题,多半是在for循环里出现 。
二维数组中行列计算问题
我们可能会经常看到这样的题,就是另一个指针等于二维数组中的某个地址单元,然后对指针进行加一之类的操作,然后问输出的值 。
而我们知道这里会有两种不同的效果,一种是行计算,一种是列计算,二者的含义是,行计算,每次加一,地址会移动一行;而列计算,每次加一,地址只会移动一格 。
比如:
#include
int main(int argc,char *argv[]){
char a[3][4]={{"you"},{"I"},{"we"}};
推荐阅读
- 如何才能用美图秀秀抠图,手机美图秀秀怎么抠图保存到相册
- 定时说说在哪修改,qq定时说说怎么修改内容
- ai需要怎么样才能填色,ai怎么给重合的区域填充颜色
- ai背景填色快捷键,ai应该要怎的才能上色
- 绿苔可以用什么去除,青苔用什么可以洗掉
- 芹菜疙瘩汤的做法,疙瘩汤的做法家常做法
- cad定数等分后看不到等分的点
- 华为手机键盘声音怎么关闭,华为手机按键声音怎么关闭uawe
- 洗衣机一工作就跳闸什么原因,洗衣机一脱水就跳闸是什么原因
