一 :数据类型

1.float类型,在输出的时候可以使用 .数字  来把浮点数精确到小数点后几位,比如 printf("%.3f",float)精确到小数点后三位,不足补0

2.字符串接收 定义个字符数组

char str[]="";

scanf("%s",&str);  //遇到空格就停止接收

gets(str);   //可以接收所有字符

printf("%s",str);

3.在向一个函数传入数组,直接传入数组名,其实就相当于传入的是数组的首地址指针;在函数中可以用数组形式接收int arr[],也可以用指针形式接收int * arr;

#include <stdio.h>
#define four 4; void add(int arr[]);
//也可以是
void add(int * arr); int main(void)
{
int arr[four]={,,,};
add(arr);
} void add(int * arr)
{
//在操作数组时 arr[i]==*(arr+i)
int i;
for(i=;i<;i++)
{
printf("%d",arr[i]);
//也可以是
printf("%d",*(arr+i));
} }

二:结构体

 struct books{
int num;
char name[];
float price;
    
}

2.1. 结构体内存占用

2.1.1.结构体所占的空间可以见到的认为是各个成员所占内存空间之和

      int   4bit, char  1bit, float   4bit

      所以结构体books的大小大概是29bit

2.1.2.实际是最大成员变量所占空间的最小整倍数

   在结构体books中最大成员变量是int和float,都是4bit,4的最小倍数要比29大,所以就是32,

      因此实际占得大小是32bit

2.3 typedef   给类型重新指定名称

typedef  int  TOINT

int a=10;   =>  TOINT a=10;

更改结构体的名称

1.typedef  struct books  BKS;

2. typedef struct books{
int num;
char name[21];
float price;
    
}BKS;

2.3 赋值

2.3.1. 最特殊的是给结构体中的数组赋值

错误写法:  BKS.name = "C primer Plus";

正常写法:  strcpy(BKS.name,"C primer Plus");

或者在定义结构体的时候使用指针指定名称

typedef struct books{
int num;
char * name;
float price;
    
}BKS;

这样就可以

先申请内存空间malloc

BKS.name = (char*) malloc(50*sizeof(char));

strcpy(BKS.name,"C primer Plus");

2.3.2. 结构体变量可以直接赋值给另一个结构体变量

BKS a={......};    BKS b;

b = a;

2.4 数组与结构体

定义一个结构体数组,存放结构体

BKS  arr[] = {
{....},
{....},
{....}
}

  访问的话就是,比如访问name : arr[0].name

c语言基础笔记的更多相关文章

  1. TSQL语言基础笔记之单表查询

    db_id()函数 返回对象的id,如果返回的对象为null,则判断不存在 if db_id('testdb') is null --判断数据库是否存在 create database testdb ...

  2. Java学习笔记:语言基础

    Java学习笔记:语言基础 2014-1-31   最近开始学习Java,目的倒不在于想深入的掌握Java开发,而是想了解Java的基本语法,可以阅读Java源代码,从而拓展一些知识面.同时为学习An ...

  3. 【记】《.net之美》之读书笔记(一) C#语言基础

    前言 工作之中,我们习惯了碰到任务就直接去实现其业务逻辑,但是C#真正的一些基础知识,在我们久而久之不去了解巩固的情况下,就会忽视掉.我深知自己正一步步走向只知用法却不知原理的深渊,所以工作之余,一直 ...

  4. 《MSSQL2008技术内幕:T-SQL语言基础》读书笔记(下)

    索引: 一.SQL Server的体系结构 二.查询 三.表表达式 四.集合运算 五.透视.逆透视及分组 六.数据修改 七.事务和并发 八.可编程对象 五.透视.逆透视及分组 5.1 透视 所谓透视( ...

  5. 《MSSQL2008技术内幕:T-SQL语言基础》读书笔记(上)

    索引: 一.SQL Server的体系结构 二.查询 三.表表达式 四.集合运算 五.透视.逆透视及分组 六.数据修改 七.事务和并发 八.可编程对象 一.SQL Server体系结构 1.1 数据库 ...

  6. C语言基础(转载自大海笔记)

    # C语言基础2015年03月26日10:04:411.    语言排行榜C——java——objective-C2.    进制:进制:进位机制.用普通的话讲,应该为人为的定义一种度量来标识一样东西 ...

  7. Java基础笔记(1)----语言基础

    变量 变量:是内存中的一块存储空间,是存储数据的基本单元. 使用:先声明,后赋值,在使用. 声明:数据类型 + 变量名 = 值.(例:int a = 5:) 数据类型 分类:如图: 详解: Strin ...

  8. MySQL学习笔记_8_SQL语言基础复习

    SQL语言基础复习 一.概述 SQL语句注释方式 1)以"#"开头直到行尾的所有内容都是注释 2)以"--"(--后还有一个空格)开头直到行尾的所有内容都是注释 ...

  9. go学习笔记-语言基础

    语言基础 结构 基础组成: 包声明 引入包 函数 变量 语句 & 表达式 注释 程序 在开始编写应用之前,我们先从最基本的程序开始,在学习大部分语言之前,都会编写一个可以输出hello wor ...

随机推荐

  1. 虚拟机内安装Centos7步骤

    下面就来看看怎么安装centos7,首先就是要准备一个虚拟机了 简称VM,当然虚拟机的安装步骤,我也不再多说,我用的Workstation 15 Pro的版本,我们直接打开虚拟机,打开界面如下: 在安 ...

  2. 20155216 2016-2017-2 《Java程序设计》第九周学习总结

    20155216 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 JDBC架构 JDBC API的使用 JDBC连接数据库 1.导入JDBC包: 添加impo ...

  3. 多级反馈序列c语言模拟实现

    多级反馈队列调度算法: 1.设置多个就绪队列,并给队列赋予不同的优先级数,第一个最高,依次递减. 2.赋予各个队列中进程执行时间片的大小,优先级越高的队列,时间片越小. 3.当一个新进程进入内存后,首 ...

  4. day 11 名片管理系统

    1 思路 #名片1 名片2 {"name":"alex","age":18,"QQ":12123} {"nam ...

  5. CF 868 F. Yet Another Minimization Problem

    F. Yet Another Minimization Problem http://codeforces.com/contest/868/problem/F 题意: 给定一个长度为n的序列.你需要将 ...

  6. mybatis逆向工程 mbg运行java代码时提示找不到MBG.xml的解决方法

    这里要写全路径才能找到文件

  7. 身份证扫描识别/身份证OCR识别的正确姿势,你get到了吗?

    自从国家规定电信实名制之后,实名制已经推广到各个领域:办理通信业务需要实名制.银行开户需要实名制.移动支付需要实名制,就连注册个自媒体账户都需要实名制. 而实名制的背后,就是身份证信息的采集和录入验证 ...

  8. php 操作 oracle lob 数据2

    CREATE SEQUENCE mylobs_id_seq    NOMINVALUE    NOMAXVALUE    NOCYCLE    CACHE 20    NOORDERINCREMENT ...

  9. dalao自动报表邮件2.0

    经过昨天的修改优化后,dalao收到了不是“木马”的邮件,欣慰地点了点头,“不错,不错,这几张表设计的简洁明了,看着有货!不过呀,,,这些表的数据太多了一点,十几天的数据一大溜,能不能再简洁一点,做一 ...

  10. Centos7下安装Oracle11g r2

    我的centos7是在virtualbox下安装的,安装Oracle安装了好久好久,最开始的时候在网上找的两个文章,按照步骤装,有一篇写着装的时候有灰色的竖线,直接按space键或者鼠标右键close ...