c 语言学习笔记(一)基础

近期工作上有对C语言算法上的需求,所以要学C,上学的时候没学过,只学过半年的Java(我是专升本,本科学的材料),2015年工作后也学过C,那时候的需求是能看懂就可以,也就没深入研究,用一周撸了一遍C基础,可以看懂了,现在要能自写出来,而且是算法相关的,两年过去了,一些细节更是早就忘光了,只能再深入学习一下了。最后说一句,每个人学东西都是从不会开始,除了班禅我从未听说有人生下来就会需要后天习得的技能,即便是动物也是通过游戏来习得捕猎的,所以说别怕晚,3个月你就可以入门了,而且除了相对论这种接近于哲学的难以理解的,我从来没觉得任何其他技能难学,人脑就像计算机里面的带宽一样是有其极限的,也就是说任何人发明出来的东西都是可以学会的(此处不包括深度学习训练得到的模型,理解模型需要的带宽有点高)

本文仅作为我自己学习时候的一个标记,或者回头复习一下看一下,不能作为他人的学习笔记,也不能用来系统的学习C语言。

本文内容参考:Linux C编程一站式学习http://akaedu.github.io/book/

c/c++ primer https://github.com/andycai/cprimer

#include <stdio.h>

int main(){

  printf("Hello World\n");

  return 0;

}

注释并不会被编译器所编译,/* */,不能嵌套,可以跨行

注释/* 注释*/

//注释,不能跨行

\‘ 单引号‘(Single Quote或Apostrophe)
\" 双引号"
\? 问号?(Question Mark)
\\ 反斜线\(Backslash)
\a 响铃(Alert或Bell)
\b 退格(Backspace)
\f 分页符(Form Feed)
\n 换行(Line Feed)
\r 回车(Carriage Return)
\t 水平制表符(Horizontal Tab)
\v 垂直制表符(Vertical Tab)

printf("character %c \n integer %d \n float %f ",‘}‘,3,3.14);

printf中的第一个字符串称为格式化字符串(Format String),它规定了后面几个常量以何种格式插入到这个字符串中,在格式化字符串中%号(Percent Sign)后面加上字母c、d、f分别表示字符型、整型和浮点型的转换说明(Conversion Specification),转换说明只在格式化字符串中占个位置,并不出现在最终的打印结果中,这种用法通常叫做占位符(Placeholder)

常用变量类型

char 字符型 ,int 整型,float 浮点型,double 双精度浮点型

char fred;
int bob;
float jimmy;
double tom;

上面的只是声明,如下是为变量赋值

fred = ‘c’;

也可以将声明和复制放在一行 如:int bob= 3;

我建议在声明时直接进行赋值,因为我在用c++写代码时,有时变量自己附初始值不是0 ,而是其他值。

表达式

*和/是同一优先级,+和-是同一优先级,*和/的优先级高于+和-。对于同一优先级的运算从左到右计算,如果不希望按默认的优先级计算则要加()括号(Parenthesis)。例如(3+4)*5/6应先算3+4,再算*5,再算/6。

各种语言中的运算符都是相同的,至少现在还没看到在运算符上使用不同规则的。

printf("%d hours and %d percent of an hour\n", hour, minute * 100 / 60);
printf("%d and %f hours\n", hour, minute / 60.0);

函数

#include <stdio.h>

void newline(void);
void threeline(void);

int main(void)
{
...
}

void newline(void)
{
...
}

void threeline(void)
{
...
}

和c++类似也是需要先声明,后定义,或者直接在声明时直接定义,

全局变量局部变量和其他语言相同

分支语句,与其他语言在形式上稍有不同,但是大体相同

void print_parity(int x)
{
if (x % 2 == 0)
printf("x is even.\n");
else
printf("x is odd.\n");
}

if /else if /else

if (x > 0)
printf("x is positive.\n");
else if (x < 0)
printf("x is negative.\n");
else
printf("x is zero.\n");

时间: 2024-10-11 17:21:10

c 语言学习笔记(一)基础的相关文章

R语言学习笔记:基础知识

1.数据分析金字塔 2.[文件]-[改变工作目录] 3.[程序包]-[设定CRAN镜像] [程序包]-[安装程序包] 4.向量 c() 例:x=c(2,5,8,3,5,9) 例:x=c(1:100) 表示把1 - 100的所有数字都给x这个变量 5.查看x的类型:>mode(x) 6.查看x的长度:>length(x) 7.将两个向量组成一个矩阵: >rbind(x1, x2)  注:r是row的意思,即行,按行组成矩阵. >cbind(x1, x2)  注c是column的意思,

C语言学习笔记之基础语法(一)

1.内存寻址由大到小,优先分配内存地址比较大的字节给变量 2.变量有限定义,内存地址就越大 3.输出格式为%p 4.一个变量要先初始化,再使用 #include <stdio.h> int main() { int a=10; int b=20; char c='f'; double d=2.0; float f=3.0f; printf("%p\n",&a); printf("%p\n",&b); printf("%p\n&q

R语言学习笔记

參考:W.N. Venables, D.M. Smith and the R DCT: Introduction to R -- Notes on R: A Programming Environment for Data Analysis and Graphics,2003. http://bayes.math.montana.edu/Rweb/Rnotes/R.html 前言:关于R 在R的官方教程里是这么给R下注解的:一个数据分析和图形显示的程序设计环境(A system for data

PHP:学习笔记(2)——基础语法

PHP:学习笔记(2)--基础语法 向屏幕输出 说明 1.void echo ( string $arg1 [, string $... ] ) 2.int print ( string $arg ) 注意: 1.echo.print 实际上不是一个函数(它是一个语言结构),因此你可以不必使用圆括号来括起它的参数列表. 2.输出变量的时候需要使用双引号! 3.int printf ( string $format [, mixed $args [, mixed $... ]] ) 4.strin

Perl语言学习笔记 9 正则表达式处理文本

1.替换 s/PATTERN/REPLACE/; #返回是否替换成功的布尔值 可以使用捕获变量,如:s/(\w)/$1/ 匹配失败则不做任何处理 2.定界符 对于没有左右之分的定界符,重复三次即可,如:s///.s### 对于有左右之分的定界符,需使用两对,一对包含模式,一对包含替换字符串,这两对可以不一样,如:s{}{}.s[]{}.s<>[] 3.可选修饰符 /g可进行全局替换,替换所有匹配到的字符串,如:s/ / /g /s:使得 . 匹配所有字符 /i:大小写无关 4.绑定操作符 $f

Perl语言学习笔记 6 哈希

1.哈希的键是唯一的,值可以重复! 2.访问哈希元素 $hashname{"$key"};#哈希为大括号,数组为方括号,键为字符串 $family_name{"fred"} = "firstd";#给哈希元素赋值 3.哈希键支持任意表达式 $foo = "na"; $family_name{$foo."me"};#获取$family_name{"name"}对应的值 4.访问整个哈希 %

JavaScript--基于对象的脚本语言学习笔记(二)

第二部分:DOM编程 1.文档象模型(DOM)提供了访问结构化文档的一种方式,很多语言自己的DOM解析器. DOM解析器就是完成结构化文档和DOM树之间的转换关系. DOM解析器解析结构化文档:将磁盘上的结构化文档转换成内存中的DOM树 从DOM树输出结构化文档:将内存中的DOM树转换成磁盘上的结构化文档 2.DOM模型扩展了HTML元素,为几乎所有的HTML元素都新增了innerHTML属性,该属性代表该元素的"内容",即返回的某个元素的开始标签.结束标签之间的字符串内容(不包含其它

大话设计模式学习笔记——面向对象基础

前言 好记性不如烂"笔头"系列--大话设计模式学习笔记 目录 面向对象基础 面向对象基础 什么是类与实例 一切事物皆为对象,即所有的东西老师对象,对象就是可以看到.感觉到.听到.触摸到.尝到.或闻到的东西.准确地说,对象是一个自包含的实体,用一组可识别的特性和行为来标识.面向对象编程,英文叫 Object-Oriented Programming,其实就是针对对象来进行编程的意思.类就是具有相同属性和功能的对象的抽象集合.实例就是一个真实的对象.比如我们属于'人'类,而个人就是'人'类

R语言学习笔记2——绘图

R语言提供了非常强大的图形绘制功能.下面来看一个例子: > dose <- c(20, 30, 40, 45, 60)> drugA <- c(16, 20, 27, 40, 60)> drugB <- c(15, 18, 25, 31, 40) > plot(dose, drugA, type="b") > plot(dose, drugB, type="b") 该例中,我们引入了R语言中第一个绘图函数plot.pl

Java快速教程--vamei 学习笔记(基础篇)

链接:http://www.cnblogs.com/vamei/archive/2013/03/31/2991531.html java快速教程第1课 从HelloWorld到面向对象 学习网址:http://www.cnblogs.com/vamei/archive/2013/03/14/2958654.html java快速教程第2课 方法与数据成员 学习网址:http://www.cnblogs.com/vamei/archive/2013/03/25/2964430.html java快