首页 > 其他分享 > 初识C语言

初识C语言

时间:2023-02-14 19:03:52浏览次数:37  
标签:10 return int C语言 char 初识 printf main

下面我将对我目前总体大致的了解做一个总结,日后也会对所深入学习到的知识进行系统全面的总结,如果有错误,敬请谅解,如有可能,麻烦指出,谢谢!

  • 总述及第一个C语言程序
  • 数据类型
  • 变量、常量
  • 字符串
  • 转义字符
  • 语句
  • 函数
  • 数组
  • 操作符
  • 关键字
  • 指针
  • 结构体

一,总述

作为一名信计专业的学生,对C语言的掌握以及熟练运用是很有必要的,包括以后还要学习的数据结构、python、matlab等等,将数学问题与编程计算结合起来运用,收益无穷。那么下面就以十分经典的第一个C语言程序作为我这个小白的开场吧!

#include<stdio.h>

int main()
{
printf("Hello,World!\n");
return 0;
}


二,数据类型

C语言中有很多数据类型,比如:int、char等等

以下将通过类型、占用内存、打印类型三方面来阐述

int 整型、4byte、%d

short、long、long long它们4个差别仅在于占用内存不同

2byte 、4byte、8byte

#include<stdio.h>

int main()
{
int a = 10;
printf("%d\n",sizeof(int));//结果输出为4
printf("%d\n",a);
return 0;
}

char 字符串、1byte、%c

数组用%s表示

#include<stdio.h>

int main()
{
char ch = 'w';//必须有'',里面代表着一个字符
printf("%d\n",sizeof(char));//输出结果为1
printf("%c\n",ch);输出结果为 w
return 0;
}

float 小数、4byte、%f

注:保留x位小数:用%.xf

#include<stdio.h>

int main()
{
float a = 3.14;
printf("%d\n",sizeof(float));//输出结果为4
printf("%f\n",a);输出结果为3.140000
return 0;
}


三,变量和常量

在C语言中,int a = 10表示将a初始化赋值成10,以后还可以对a进行重新赋值,如下面代码的第一个结果为10,而第二个结果为20

#include<stdio.h>

int main()
{
int a = 10;
printf("%d\n",a);//输出结果为10
a = 20;//对a重新赋值
printf("%d\n",a);//输出结果为20
return 0;
}

而如果想要表示一个常量,就需要用到const修饰的常变量

const修饰的本质是变量,所以成为常变量

或者#define定义的标识符常量,注:格式为#define MAX 10,无=,无;

#include<stdio.h>

#define MAX 10//注意格式
int main()
{
const int a = 10;
a = 20;//err,此时a不能被重新赋值

printf("%d\n",MAX);
return 0;
}


四,语句

循环语句:

if和while行不加;

#include<stdio.h>

int main()
{
int i = 0;
while(i < 20000)
{
printf("每天敲一行代码");
i++;
}
if(i >= 20000)
printf("得到了好offer\n");
return 0;
}

选择语句

  1. 在输入条件时,应为判断a == 1,双等号为判断是否相等,等号为赋值
  2. scanf中“%d”不能加\n

#include<stdio.h>

int main()
{
int a;
printf("请选择是否(1/0)要好好学习:");
scanf("%d",&a);
if(a == 1)
printf("加油,你会成功的!\n");
else
printf("滚去学习\n");
return 0;
}


五,数组

定义为同一类型元素的集合,比如定义一组整型

char arr[10]={1,2,3,4,5,6,7,8,9,10};

上面代码中arr[10]中的10表示初始化给arr十个存储空间,如果一开始不定义,则根据后面给定的字符数量自动定义内存大小

C语言规定:数组里每一个元素都有从0开始的下标,数组里的元素可以通过arr[下标]来访问

char arr[] = {2,3,4,5};
printf("%d\n",arr[0]);

上面代码中arr[0]表示数组中的第1个元素,因为元素类型为整型,所以用%d

下面举一个元素类型为字符串的例子

char arr[] = {"hello"};
printf("%c\n",arr[0]);//输出结果将会为 h


六,字符串

"hello world\n"
char arr[]={"hello"}

这种由“ ”引起来的一串字符称为字符串,可以由数组来存储

注:字符串结束的标志是一个\0的转义字符。再计算字符串长度的时候\0是结束标志,但不算作字符串内容

#include<stdio.h>

int main()
{
char arr1[] = {"Jay"};//输出结果为Jay
char arr2[] = {'J','a','y'};//输出结果为JayJay
char arr3[] = {'J','a','y','\0'};//输出结果为Jay
printf("%s\n",arr1);
printf("%s\n",arr2);
printf("%s\n",arr3);
return 0;
}

'0' 字符0,ASCII码值为48

'\0'转义字符,ASCII码值为0


七,函数

C语言自带的一些运算,如+、-、*等等,可在main函数里直接使用。注:一些特殊的运算(比如sqrt函数)需要引一个头文件#include〈math.h〉

#include<stdio.h>
#include<math.h>

int Add(int x,int y)
{
renturn x + y;
}
int main()
{
int a = 10;
int b = 20;
int sum = 0;
sum1 = a + b;
printf("%d\n",sum1);
int sum2 = Add(a , b);
printf("%d\n",sum2);
return 0;
}

我们也可以通过宏来定义函数

注:MAX(a , b)之间不加空格,后面为三目操作符

#define MAX(a,b)(a>b?a:b)

八,转义字符

转义字符

释义

\n

换行

\r

回车

\\

表示一个\

\'

表示一个'

\"

表示一个"

\?

表示一个?

\t

水平制符表

\v

垂直制符表

\ddd

ddd是八进制,输出十进制下ASCII码的符号

\xdd

dd是十六进制,输出十进制下ASCII码的符号

九,操作符

赋值操作符

+  -  *  /  %//取模,即余数

移位操作符

<<  >>//移二进制位
int a = 1;// 0000....0001
int b = a<<2//0000....0100

位操作符:对应二进制位做位运算,得到新的二进制数。0假1真

&//按位与,全真才真
|//按位或,有真就真
^//按位异或,相同则假,相异则真

int a = 3;// 011
int b = 5;// 101
int c = 3&5;//001
int d = 3|5;//111
int e = 3^5;//110

逻辑操作符:对应十进制数字判断关系。0假,非0真

&&//逻辑与,全真才真
||//逻辑或,有真就真

int a = 0&&5;//假
int b = 0||5;//真
//所有非0输出全为1

赋值操作符:a ?= b等价于a = a ? b

=  +=  -=  *=  /=  &=  ^=  |=  >>=  <<=  

单目操作符

!       逻辑反操作
& 取地址符
~ 二进制按位取反
-- 前置--,后置--
++ 前置++,后置++
* 解引用操作符
(类型) 强制类型转换

关系操作符

!=//用于判断不相等
==//用于判断相等

条件操作符

exp1?exp2:exp3//若1为真,则执行2,否则执行3

下标引用、函数调用和结构成员

[]  ()  .  ->


十,关键字

auto break case char const continue default do double else while
extern float for goto if int long register return short signed enum
sizeof static struct switch typedef union unsigned void volatile

static

修饰局部变量,局部变量的生命周期延长

int a = 1;//int 自动生成,自动销毁。static可以不让int销毁

void test()
{
static int a = 2;//对比int a = 2
a++;
printf("%d\n",a);
}
int main()
{
int i = 0;
while(i<5)
{
test();
i++;
}
return 0;
}

修饰全局变量,改变了变量的作用域,全局变量不可用

修饰函数,改变了函数的链接属性:外部链接属性--> 内部链接属性

typrdef:可以重命名类型

typedef unsigned int u_int;//typedef - 类型定义 - 类型重定义

十一,指针

int a = 10;
int* p = &a;//创建指针变量存放a的地址
*p = 20;//利用*,通过p找到了a,并将其改成20
printf("%d\n",a);//此时输出结果为20

指针类型的变量p存放的是a的地址&a

指针的作用是我们可以通过p找到a

指针的内存为地址的大小,32位->4byte,64位->8byte

十二,结构体

对于人、书等等复杂对象,不是一个数字或字母能够表示的,我们将创建一个结构体来存储它的信息

结尾的分号一定不能丢

struct Book
{
char name[20];//代表书名给了20个存储大小
int price;//给定价格
};//分号很重要

如上的结构体就是由name、price共同定义的

创建好结构体之后,就可以创建我们想要的变量了,此时我们可以通过创建的变量找到对应的信息

#include<stdio.h>
struct Book
{
char name[20];//代表书名给了20个存储大小
int price;//给定价格
};//分号必须加
int main()
{
struct Book b1 = {"C语言程序设计",55};//创建了b1这本书
printf("%s\n",b1.name);//b1.name 表示通过b1找到它的名字
return 0;
}

将指针与结构体联系起来,尝试通过指针变量修改名字以及价格

注意,修改字符串时,要使用内置函数strcpy(“改成什么”,改掉什么),头函数使用#include 《string.h》

#include<stdio.h>
#include<string.h>
struct Book
{
char name[20];
int price;
};
int main()
{
struct Book b1 = {"C语言程序设计",55};
struct Book* pb = &b1;//将b1的地址存起来
strcpy("C++程序设计",b1.name);//b1也可以改成&b1->name
return 0;
}

OK,总结完毕,那接下来,进行正式的深入的学习吧!!!

标签:10,return,int,C语言,char,初识,printf,main
From: https://blog.51cto.com/u_15964929/6057378

相关文章

  • 初识Python
                             pycharm软件的基本使用#1.下载与安装#2.pycharm的语言,一定要使用英文的​#修改主题......
  • 单链表:用C语言实现-单链表头文件相关定义
    一、公共头文件#ifndef__MYHEAD_H__#define__MYHEAD_H__/*******************************************************************@file:myhead.h*@brief:公......
  • C语言学习笔记(九):文件的操作
    C文件的知识什么是文件操作系统把各种设备都统一作为文件来处理。例如,终端键盘是输入文件,显示屏和打印机是输出文件。文件一般指存储在外部介质上数据的集合。操作系统......
  • springcloud sidecar 实现C语言调用语言模块
    以前对springcloud的印象停留在大项目功能模块的独立、负载均衡、熔断等功能。这次项目接触了另一个用法,多语言异构。以前Java调C都是用的JNA或者JNI,这次C调Java用了spring......
  • C语言填空:数组a b c,c中元素包括a,但不在b中
    #include<stdio.h>//数组a中有8个不相等的元素,b中有5个不相等的元素,数组c中包含那些a中但不在b中的元素,并输出数组c各元素的值main(){inta[8],b[5],i,j,count;......
  • C语言学习笔记(八): 自定义数据类型
    结构体变量什么是结构体C语言允许用户自己建立由不同类型数据组成的组合型的数据结构,它称为结构体结构体的成员可以是任何类型的变量,如整数,字符串,浮点数,其他结构体,指针......
  • C语言学习2
    C语言常见的数据类型char     //字符数据类型short     //短整型int       //整型long     //长整型longlong  //更......
  • C语言学习笔记(七): 指针的使用
    函数的定义形参和实参在定义函数时函数名后面括号中的变量名称为“形式参数”(简称“形参”)或“虚拟参数”。在主调函数中调用一个函数时,函数名后面括号中的参数称为“......
  • c语言 字符串拼接
    voidstr_cat(char*s1,char*s2){inti=0,j=0;while(s1[i++]);i--;while(s1[i++]=s2[j++]);}voidstr_cat(char*s1,char*s2){inti=0,j......
  • C语言死兔子问题
    问题:开局一对兔子三个月开始产子小兔子三个月后开始产子生一对兔子…兔子都不死计算有多少只兔子#include<stdio.h>intblamedRabbit(intm){intfb1,fb2;fb......