- 浏览: 5056 次
- 性别:
- 来自: 深圳
最新评论
文章列表
我在我的知识星球:“C语言解惑课堂”里的第一篇提出一个问题:【第1篇】【C语言基础】【unsigned short类型用于循环的一个难点】要查看更多的C语言难点解析或者需要提问的同学,微信扫扫文末我的星球二维码加入吧!
一、【问题】
同学们,今天来道C语言比较有意思的题,C程序代码见下图。
for循环中我给了变量para一个初始值1,也让para自增1,但是没有指定for循环结束的条件。你觉得有问题吗?会不会是一个无穷尽的循环?如果有问题你打算怎么修改呢?
二、【解惑】
这个循环是会终止的,不会永远循环下去。
在我的PC机上,我使用sizeof求出了“unsigned shor ...
做C语言开发的人,经常会遇到“ANSI C”、“ISO C”与“Standard C”三种术语,经常会让人傻傻分不清楚。博主之前按也是搞不清三者的关系,于是某天下定决心,一定要搞清楚三者的关系,先百度上搜下。下面是在百度百科上搜索关键字“ANSI C”得到的结果:
================================分割线========================================
ANSI C_百度百科
1.C 的第一个标准是由ANSI发布的。虽然这份文档后来被国际标准化组织(ISO)采纳并且ISO发布的修订版也被ANSI采纳了,但名称ANSI C(而不是 ...
目录
一、我的C语言答疑课程
二、文章版权说明
三、本专栏文章合集
四、内容合作事宜
五、我的C语言答疑平台信息
六、我的C语言教学理念
一、我的C语言答疑课程
1、“C语言就是这么简单”课程系列
1.C语言入门
课程名:你 ...
一、疑问点
指针是C语言一个很强大的功能,同时也是很容易让人犯错的一个功能,用错了指针,轻者只是报个错,重者可能整个系统都崩溃了。下面是大家在编写C程序时,经常遇到的一种错误的使用方法,也许在你的学习和工作中就是这样用的,很危险。实例程序如图1所示:
图1 实例程序
这段程序比较简单,str1指向的内存区域存放了一个字符串“123”,把“123”赋值到str2指向的内存区域,编译时会给出一个告警:
local variable 'str2' used without having been initialized
意思是说,“str2”这个变量没有初始化。我们可以不理会这个告警,并且继续运行 ...
有位同学说,“老师,我运行如下代码,结果报错了”
#include <iostream.h>
int main(){
char c,
int b;
return 0;
}
报错结果是:
--------------------Configuration: Test - Win32 Debug--------------------
Compiling...
demo.c
d:\ccode\test\demo.c(4) : error C2059: syntax error : 'type'
Error executing cl.exe.
demo.obj - 1 e ...
有同学问我,以下代码会输出“===”,为什么呀?
if( (fp = fopen("data.dat","r"))==NULL){
printf("===");
}
我看了下,代码是以“读”的方式打开data.dat文件,可是代码都没有指定data.dat 在哪里,程序找不到这个文件,所以就认为出错了。
咋办呢?要么创建data.dat文件,且指定文件的路径;要么就以“写”方式打开文件,则data.dat文件不存,程序也会新建一个data.dat文件。
想在printf中,输出多行数据,如果写成下面这样:
printf("line 1\n
line 2\n
line 3\n");
编译器会报错“error C2001: newline in constant”。
可以这样写:
printf("line 1\
line 2\
line 3\n");
或者
printf("line 1"
"line 2"
"line 3\n");
1. 例子,看实例2-2.
这道题有同学会问,那个return有什么用?
这么讲吧,return是个英文单词,中文意思是“返回”,用在程序里也是返回的意思,返回啥呢?返回一个值。在func函数中,return将a+b+1这个表达式计算的值拿到,并且返回给main函数中的p,就是这样。
所以啊,return这个东东一般都是放在函数的末尾,用来将函数中的某一个值拿到,再给其他变量。
写C程序时,经常发现大家=与==分不清。最常见的写法如下:
int a = 3;
if(a = 1)
{
.......
}
写程序的人原意是想如果a等于1的话,就执行花括号里的语句,a初始化时的值是3,也就是不会执行,但实际呢?却执行了花括号里的语句。
这个也不能怪C程序的初学者,大家学了那么多年的数序,=是等于号早就深入人心,现在C语言告诉你==才是等于号,放谁也一时半会儿接收不了,难道就真没有一个方法能避免此类错误吗?当然不是。我教大家一个联想的办法。
数学中,=是等于号,那么在心中告诉自己,“数等”就是数学中等于号的意思,且“数”与“傻”发音相似,那么就记住“傻等”,在写关于相等的 ...